[[Sota/開発作業履歴]] ------------------------------------- #contents ------------------------------------- *2015/04/07 [#q31629e8] **V4L2[#w35e55e3] - とりあえずデバイスからカメラモードを取得。 VIDIOC_QUERYMENUで何故かInvalid argument. - サンプルを実行するとselect timeoutとなる。解決法を探し中。 - ひょっとしたら、カメラのフレームレートが速すぎて間に合っていない?? このカメラ、サイズに対してフレームレートが1種類しかないから、遅く出来ない。。 Using camera #0 Camera : /dev/video0 Driver name : uvcvideo Driver Version : 3.10.17 Device name : HD USB Camera Bus information : usb-dwc3-host.2-1.2 Capabilities : 84000001h V4L2_CAP_VIDEO_CAPTURE (Video Capture) : OK V4L2_CAP_VIDEO_OUTPUT (Video Output) : Not supported. V4L2_CAP_VIDEO_OVERLAY (Video Overlay) : Not supported. V4L2_CAP_VBI_CAPTURE (Raw VBI Capture) : Not supported. V4L2_CAP_VBI_OUTPUT (Raw VBI Output) : Not supported. V4L2_CAP_SLICED_VBI_CAPTURE (Sliced VBI Capture) : Not supported. V4L2_CAP_SLICED_VBI_OUTPUT (Sliced VBI Output) : Not supported. V4L2_CAP_RDS_CAPTURE (Undefined.[to be defined]) : Not supported. V4L2_CAP_VIDEO_OUTPUT_OVERLAY (Video Output Overlay (OSD)) : Not supported. V4L2_CAP_TUNER (Tuner) : Not supported. V4L2_CAP_AUDIO (Audio inputs or outputs) : Not supported. V4L2_CAP_RADIO (Radio receiver) : Not supported. V4L2_CAP_READWRITE (Read/write() I/O method) : Not supported. V4L2_CAP_ASYNCIO (Asynchronous I/O method) : Not supported. V4L2_CAP_STREAMING (Streaming I/O method) : OK Image format #0 : MJPG (MJPEG) 0: (640 x 480) 1/30 1: (320 x 240) 1/30 2: (800 x 600) 1/30 3: (1024 x 768) 1/30 4: (1280 x 720) 1/30 5: (1280 x 1024) 1/30 6: (1600 x 1200) 1/15 7: (1920 x 1080) 1/15 8: (2048 x 1536) 1/15 9: (2592 x 1944) 1/15 10: (640 x 480) 1/30 Image format #1 : YUYV (YUV 4:2:2 (YUYV)) 0: (640 x 480) 1/30 1: (320 x 240) 1/30 2: (800 x 600) 1/30 3: (1024 x 768) 1/15 4: (1280 x 720) 2/15 5: (1280 x 1024) 2/15 6: (1600 x 1200) 1/3 7: (1920 x 1080) 1/3 8: (2048 x 1536) 1/3 9: (2592 x 1944) 1/3 10: (640 x 480) 1/30 #comment *2015/04/08 [#q31629e8] **V4L2 part2[#w35e55e3] タイムアウトの時間を2秒から600秒に変えたらあっさり成功。。。 #comment *2015/04/09 [#q31629e8] **V4L2 part3[#w35e55e3] - このページがとても参考になる。。 http://manual.atmark-techno.com/armadillo-810/armadillo-810_product_manual_ja-1.3.0/ch14.html - カメラを変えると、あっさりとうまくいく。カメラの故障? - しかし、ケーブルを触るとまたtimeoutが発生。一度発生すると、再起動しないと治らない。初期化が不十分? #comment *2015/04/15 [#q31629e8] **JNA化[#w35e55e3] - ひとまずjavaからCで作ったライブラリにアクセスしてキャプチャすることに成功。 - 動いたところまで。ハードコーディング部分やコメントなど治す必要あり。 - 今のところ問題は起こっていないが、エラー処理が不安。カメラに異常があってエラーとなった場合、それ以降ちゃんと復旧するか確認する必要がある。 #comment *2015/04/17 [#q31629e8] **JNA化2[#w35e55e3] - YUV、JPEG、BMP24、PGMでのキャプチャ対応。 - JPEG以外は、カメラモードYUYVでキャプチャして個別に変換。データ量に比例して遅くなる。JPEG軽い。。 - PGMをfaceu_Edisonのサンプルで動作確認。特に問題なし。 - フレームレートが遅いとオートフォーカスが遅い。解像度を上げるとフレームレートが遅くなるので、ちっともフォーカスが合わなくなる。 #comment *2015/04/20 [#q31629e8] **顔認識1[#w35e55e3] - 顔認識はグレースケールでしかやっていない。サンプルでは元々グレースケールのPGMファイルか、RGB24のファイルからグレースケールを作ってメモリに展開している。 - メモリはただの8ビットグレースケールの羅列で、width、heightは別に指定している。 - メモリ渡しで顔認識する関数と、各フォーマットのファイルからメモリに読み出す関数を作るのが合理的かも。 - jpeglibを使ってグレースケールを作れたら、他のデータフォーマットよりも高速になるかも。 #comment