tag:blogger.com,1999:blog-66971647313192728182024-03-13T08:40:38.172+09:00OpenCV 備忘録OpenCV、機械学習、はやりのDeep learningの環境構築の方法、サンプルの動かし方、APIの使い方、Tipsなどをすぐに忘れてしまうので、備忘録として記録している。記憶がなくなるスピードが、早いのでメモしておかないと再現できなくなる確率が高まっている。
最近、再度HDDを飛ばしてしまい、過去の自分のページに再度助けられた。
また、DNNモジュールを触る機会が増えているので、C++からPyhonへと鞍替え中。
内容を気にいっていただければ、twitterで紹介願います。
OpenCV 備忘録http://www.blogger.com/profile/10220249018358948739noreply@blogger.comBlogger454125tag:blogger.com,1999:blog-6697164731319272818.post-13921214572487951792018-09-25T21:13:00.000+09:002018-09-25T21:13:26.806+09:00OpenCV(3.4.3)-pythonのコンフィグレーションを調べてみたどのようコンフィグレーションなのか下記コマンドで表示させてみた。<br />
結果は、長いので一部省略<br />
<br />
当然のことながらcudaは未対応<br />
<br />
>>> import cv2<br />>>> print(cv2.getBuildInformation())<br /><br />General configuration for OpenCV 3.4.3 =====================================<br /> Version control: 3.4.3<br /><br /> CPU/HW features:<br /> Baseline: SSE SSE2 SSE3<br /> requested: SSE3<br /> Dispatched code generation: SSE4_1 SSE4_2 FP16 AVX AVX2<br /> requested: SSE4_1 SSE4_2 AVX FP16 AVX2 AVX512_SKX<br /> SSE4_1 (3 files): + SSSE3 SSE4_1<br /> SSE4_2 (1 files): + SSSE3 SSE4_1 POPCNT SSE4_2<br /> FP16 (1 files): + SSSE3 SSE4_1 POPCNT SSE4_2 FP16 AVX<br /> AVX (5 files): + SSSE3 SSE4_1 POPCNT SSE4_2 AVX<br /> AVX2 (9 files): + SSSE3 SSE4_1 POPCNT SSE4_2 FP16 FMA3 AVX AVX2<br /><br /> Extra dependencies: /opt/Qt4.8.7/lib/libQtGui.so /opt/Qt4.8.7/lib/libQtTest.so /opt/Qt4.8.7/lib/libQtCore.so /lib64/libz.so /opt/libjpeg-turbo/lib64/libjpeg.a avcodec avformat avutil swscale dl m pthread rt<br /> 3rdparty dependencies: ittnotify libprotobuf libwebp libpng libtiff libjasper IlmImf<br /><br /> OpenCV modules:<br /> To be built: calib3d core dnn features2d flann highgui imgcodecs imgproc java_bindings_generator ml objdetect photo python3 python_bindings_generator shape stitching superres video videoio videostab<br /> Disabled: js world<br /> Disabled by dependency: -<br /> Unavailable: cudaarithm cudabgsegm cudacodec cudafeatures2d cudafilters cudaimgproc cudalegacy cudaobjdetect cudaoptflow cudastereo cudawarping cudev java python2 ts viz<br /> Applications: -<br /> Documentation: NO<br /> Non-free algorithms: NO<br /><br /> GUI: <br /> QT: YES (ver 4.8.7 EDITION = OpenSource)<br /> QT OpenGL support: NO<br /> GTK+: NO<br /> VTK support: NO<br /><br /> Media I/O: <br /> ZLib: /lib64/libz.so (ver 1.2.3)<br /> JPEG: /opt/libjpeg-turbo/lib64/libjpeg.a (ver 62)<br /> WEBP: build (ver encoder: 0x020e)<br /> PNG: build (ver 1.6.34)<br /> TIFF: build (ver 42 - 4.0.9)<br /> JPEG 2000: build (ver 1.900.1)<br /> OpenEXR: build (ver 1.7.1)<br /> HDR: YES<br /> SUNRASTER: YES<br /> PXM: YES<br /><br /> Video I/O:<br /> DC1394: NO<br /> FFMPEG: YES<br /> avcodec: YES (ver 58.21.104)<br /> avformat: YES (ver 58.17.101)<br /> avutil: YES (ver 56.18.102)<br /> swscale: YES (ver 5.2.100)<br /> avresample: NO<br /> GStreamer: NO<br /> libv4l/libv4l2: NO<br /> v4l/v4l2: linux/videodev.h linux/videodev2.h<br /><br /> Parallel framework: pthreads<br /><br /> Trace: YES (with Intel ITT)<br /><br /> Other third-party libraries:<br /> Lapack: NO<br /> Eigen: NO<br /> Custom HAL: NO<br /> Protobuf: build (3.5.1)<br /><br /> OpenCL: YES (no extra features)<br /> Include path: /io/opencv/3rdparty/include/opencl/1.2<br /> Link libraries: Dynamic load<br /><br /> Python 3:<br /> Interpreter: /opt/python/cp35-cp35m/bin/python (ver 3.5.5)<br /> Libraries: libpython3.5m.a (ver 3.5.5)<br /> numpy: /opt/python/cp35-cp35m/lib/python3.5/site-packages/numpy/core/include (ver 1.11.1)<br /> packages path: lib/python3.5/site-packages<br /><br /> Python (for build): /opt/python/cp35-cp35m/bin/python<br /><br /> Java: <br /> ant: NO<br /> JNI: NO<br /> Java wrappers: NO<br /> Java tests: NO<br /><br /> Matlab: NOOpenCV 備忘録http://www.blogger.com/profile/10220249018358948739noreply@blogger.com0tag:blogger.com,1999:blog-6697164731319272818.post-25440758541613171312018-09-25T21:04:00.000+09:002018-09-25T21:04:48.796+09:00OpenCV-pythonの開発用にVisual Stuidio Codeをインストールした<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFtHGEoYXuyYRFsXxOvjslds1ecdKQc7YT5Ai0OK3EqNybejqQCqMr65rE2ejZU9wDMAv17E9uhuN8SuW2RTfUOW4Pd-TT1X9pSL6kkAKMaOREiqoEwF6tpVPddObQGWILx6p9x6v3k6Xo/s1600/Screenshot+from+2018-09-25+20-58-17.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="319" data-original-width="526" height="242" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFtHGEoYXuyYRFsXxOvjslds1ecdKQc7YT5Ai0OK3EqNybejqQCqMr65rE2ejZU9wDMAv17E9uhuN8SuW2RTfUOW4Pd-TT1X9pSL6kkAKMaOREiqoEwF6tpVPddObQGWILx6p9x6v3k6Xo/s400/Screenshot+from+2018-09-25+20-58-17.png" width="400" /></a></div>
<br /><br />Visual Stuidio Codeは<a href="https://code.visualstudio.com/download">ここ</a>にアクセスしダウンロードする<br /><br />Ubunutは、 .debの64bitを<br />Windows10は、UserInstallerの64bitをそれぞれダウンロードした<br /><br />
<h4>
拡張機能のインストール</h4>
あると便利なので上記画像のものを使用している<br />
<br />
<b>日本語化</b><br />Japanese Language Pack for Visual Studio Code が必要<br />
<br />インストール後に、[Ctrl]+[Shift]+[P] でコマンドパレットを表示させ「configure」を入力<br />下記画面の様に、ロケールをjaに変更し再起動すればよい<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTLc3SGReUSTtUedXG_CNCCVKy-_49ixrqfnQ7Gp81WyG2Hfz24U-SBI0R6lZ5gMGMymrabcChZFpvYJ0NK17yh2NZt3Yp2OOr3jGci_0JG5j50RAWwDrnf4bUKTHLbmV9Dxs2ZAZrt7VW/s1600/Screenshot+from+2018-09-25+21-00-30.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="169" data-original-width="719" height="94" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTLc3SGReUSTtUedXG_CNCCVKy-_49ixrqfnQ7Gp81WyG2Hfz24U-SBI0R6lZ5gMGMymrabcChZFpvYJ0NK17yh2NZt3Yp2OOr3jGci_0JG5j50RAWwDrnf4bUKTHLbmV9Dxs2ZAZrt7VW/s400/Screenshot+from+2018-09-25+21-00-30.png" width="400" /> </a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<b>メモ </b></div>
<div class="separator" style="clear: both; text-align: left;">
pylintを有効にすると、cv2の警告がうるさいので向こうとしている</div>
<div class="separator" style="clear: both; text-align: left;">
pylintには、ホワイトリストの設定で警告を回避できるが、VSCのpylintはその機能がない</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
以上OpenCV 備忘録http://www.blogger.com/profile/10220249018358948739noreply@blogger.com0tag:blogger.com,1999:blog-6697164731319272818.post-29044627339024072692018-09-25T20:52:00.000+09:002018-09-25T20:52:16.259+09:00Windows10 64bit上にOpenCV(3.4.3)-Python の環境を構築してみた <br />
最近Pythonを使う頻度が増えてきたので、Windows10 ノートPC上にOpenCV(3.4.3)-Pythonの環境を構築してみた
<br />
<br />
<br />
最初にWindows10上にPython環境を構築する。そのためにAnacondaをダウンロードしインストールする<br />
<a href="https://www.anaconda.com/download/">ここ</a>にアクセスし、Python 3.6 version 64-Bit Graphical Installer (631 MB) を選択する<br />
<br />
ダウンロードしたファイルを実行し、指示通りに進めていく
<br />
インストールタイプを選択する画面があるが、ここでは、JustMeを選択し、使用しているアカウントのみをインストールの対象とする
<br />
(インストールの仕方は、Google先生に聞くと画面付きの手順が多々みつかる)
<br />
<br />
インストールの途中で、Visual Studio Codeのインストールを聞かれるが、インストール時はパスした
(結局後で、自分でインストールを行った)
<br />
<br />
インストールが完了すると、
<br />
Windows のスタートメニューに、Anaconda3 (64-bit)が作成される
<br />
その中のAnaconda Promptを選択するとPythonが使用できるコンソールが起動される
<br />
<br />
事前にcondaを最新にしておく(インストールしたばかりは、環境は、Base(root)しかない)<br />
<br />
conda update -n base conda
<br />
conda update -y --all
<br />
<br />
<br />
<b>メモ
</b><br />
pythonは、以下のものが使用される<br />
C:\Users\<span style="color: red;"><b>hogehoge</b></span>\AppData\Local\Continuum\anaconda3\python.exe
<br />
(hogehogeはユーザネーム )<br />
<br />
新規環境を構築するとC:\Users\hogehoge\AppData\Local\Continuum\anaconda3\envの下に、関連ファイルが一式保存される
<br />
<br />
pip関連<br />
<b>pipのバージョン確認</b><br />
pip -V
<br />
pip 18.0
<br />
<br />
<b>pipでインストールした物
</b><br />
pip list
<br />
<br />
<b>pip の更新</b><br />
python -m pip install --upgrade pip
(--proxy=proxy.hogohoge.co.jp:8080)<br />
<br />
<b>pipでインストール</b><br />
pip install opencv-python==3.4.3.18
<br />
pip install ipython
<br />
pip install matplotlib
<br />
pip install jupyter
<br />
<br />
<h4>
参考にしたページ</h4>
<a href="https://www.kunihikokaneko.com/dblab/toolchain/anaconda3.html">Windows で Anaconda 5.2.0 のインストールと Python 3.6 の設定(パッケージのインストールなど) </a><br />OpenCV 備忘録http://www.blogger.com/profile/10220249018358948739noreply@blogger.com0tag:blogger.com,1999:blog-6697164731319272818.post-57452372587661024112018-09-24T11:58:00.003+09:002018-09-24T11:58:34.328+09:00OpenCV3.4.3のDNNのサンプルを眺めてみた4.0のアルファが公開されているので今さらだがメモ<br /><br /><b>3.4.2との比較</b><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxzAeJnQMw3i2ACgJnq1FSM6VTqOoihLVx5cxJ6Wr7_0l0b0zqN8mDzm1m0ecIcn9RkNkq2PK-1_2TAMpssTqZheq1C38PJ6PzJfXNdQE8PYQKmui8BgngQC8bxXFv6cldlZ0YuNBBPYut/s1600/Screenshot+from+2018-09-24+11-52-48.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="578" data-original-width="548" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxzAeJnQMw3i2ACgJnq1FSM6VTqOoihLVx5cxJ6Wr7_0l0b0zqN8mDzm1m0ecIcn9RkNkq2PK-1_2TAMpssTqZheq1C38PJ6PzJfXNdQE8PYQKmui8BgngQC8bxXFv6cldlZ0YuNBBPYut/s400/Screenshot+from+2018-09-24+11-52-48.png" width="378" /></a></div>
<br /><br />mask_rcnn.py tf_text_graph_common.py tf_text_graph_mask_rcnn.pyが追加されている<br /><br />tf_textは、モデルのネットワーク構成を図にするサンプルであるが、実行にはtfパッケージが必要なので、OpenCVで描画する必要性は疑問である。<br /><br /><a href="https://github.com/opencv/opencv/blob/3.4.3/samples/dnn/mask_rcnn.py">mask_rcnn</a>は、4.0の更新に記載されているが、3.4.3の時からサポートされている<br /><br /><br />後で試した結果を掲載するOpenCV 備忘録http://www.blogger.com/profile/10220249018358948739noreply@blogger.com0tag:blogger.com,1999:blog-6697164731319272818.post-89859840574057735362018-09-24T11:51:00.000+09:002018-09-24T11:51:02.912+09:00Ubuntu 16.04.5上にOpenCV-pythonの環境を構築した<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
初期状態のUbuntu上にOpenCv-Python(3.4.3)の環境を構築した時のメモ<br /><br /><b>お決まりコマンド</b><br />sudo apt-get -qq update && apt upgrade -y<br /><br /><b>必要なパッケージのインストール</b><br />sudo apt install --no-install-recommends -y wget unzip libglib2.0-0 libsm6 libxrender1 libxext6 python3 python3-dev python3-numpy<br /><br /><b>PIPのインストール</b>(認証エラーが生じたので、オプションを追加)<br />wget --no-check-certificate https://bootstrap.pypa.io/get-pip.py <br />python3 get-pip.py<br /><br /><b>OpenCV-pythonをインストール</b><br /><br />pip install matplotlib opencv-python<br /><br /><b>最後に</b><br />echo 'alias python="python3"' > .bashrc<br /><br />確認<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0ZLk1B9y0GeFriEJnDR_RUugksV0jwur-BrDgIhYJD697uw08Ix8upT7okfkCHeju6rylqnBhE4jMEgBQToesUVA-XVxkckZwurIhoz1sG_tRTVGPK6LADaOFrn8_bI1P4cGWUIufuStZ/s1600/Screenshot+from+2018-09-24+11-45-50.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="68" data-original-width="313" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0ZLk1B9y0GeFriEJnDR_RUugksV0jwur-BrDgIhYJD697uw08Ix8upT7okfkCHeju6rylqnBhE4jMEgBQToesUVA-XVxkckZwurIhoz1sG_tRTVGPK6LADaOFrn8_bI1P4cGWUIufuStZ/s1600/Screenshot+from+2018-09-24+11-45-50.png" /></a></div>
<br /><br /><br /><b>メモ</b><br />cv2をインポートした時にライブラリがないとの警告が出た場合、<br />apt-cache search libXrender<br />でパッケージ名を探し、apt-get install すればよい<br />
<b><br /></b>
<b>使用できるOpenCVを調べる</b><br />
pip install opencv-python==5<br />
存在しないバージョンを指定する<br />
<br />
Could not find a version that satisfies the requirement opencv-python==5 (from versions: 3.1.0.0, 3.1.0.1, 3.1.0.2, 3.1.0.3, 3.1.0.4, 3.1.0.5, 3.2.0.6, 3.2.0.7, 3.2.0.8, 3.3.0.9, 3.3.0.10, 3.3.1.11, 3.4.0.12, 3.4.0.14, 3.4.1.15, 3.4.2.16, 3.4.2.17, 3.4.3.18)<br />No matching distribution found for opencv-python==5<br />
<br />
以上OpenCV 備忘録http://www.blogger.com/profile/10220249018358948739noreply@blogger.com0tag:blogger.com,1999:blog-6697164731319272818.post-21524720238951609352018-09-21T19:44:00.002+09:002018-09-21T19:53:06.796+09:00カーネルを更新したらログインループとなり困ってしまった。<br />
Ubunt16.04LTSを使用しているので、カーネルを更新する必要はなかったが、魔がさしてしまい更新したところ、ログインループと呼ばれる現象が生じ、GUI環境が使用できなくなってしまった<br />
<br />
Google先生で調べてみると、nVidiaのドライバー特有の問題で、様々な対策方法が見つかった。<br />
(何回、ドライバーのインストールと削除を繰り返したか忘れた)<br />
<br />
<br />
最終的には、以下のコマンドを実行し、rebootしたらGUI環境に戻っていた。<br />
<br />
sudo apt-get install --install-recommends linux-generic-hwe-16.04 xserver-xorg-hwe-16.04<br />
<br />
<br />
uname -a<br />
旧 4.4.0-135-generic 新 4.15.0-34-generic<br />
<br />
nvidia-smi<br />
Driver Version: 390.87<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBQC-FWlhqMB7unSImkg_3f07fG53Y1467EgCIzvCki1cHOv6aLgCtI_rU0ogISG2Cs39bKiViFF2i7l9QTPfePU7NU1dZSxs0qd60vlkbWhq66su5vBhWJIU44_X1_eoauOd-Edn87wHo/s1600/Screenshot+from+2018-09-21+19-41-14.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="216" data-original-width="794" height="174" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBQC-FWlhqMB7unSImkg_3f07fG53Y1467EgCIzvCki1cHOv6aLgCtI_rU0ogISG2Cs39bKiViFF2i7l9QTPfePU7NU1dZSxs0qd60vlkbWhq66su5vBhWJIU44_X1_eoauOd-Edn87wHo/s640/Screenshot+from+2018-09-21+19-41-14.png" width="640" /></a></div>
<br />
設定を見ると、396.54も選べそうだが、しばらく様子見とする OpenCV 備忘録http://www.blogger.com/profile/10220249018358948739noreply@blogger.com0tag:blogger.com,1999:blog-6697164731319272818.post-10828624152595847752018-09-21T19:13:00.001+09:002018-09-21T19:13:16.412+09:00OpenCV4.0 アルファのchange logを訳してみた昨日、リリース予定の件を書いたら、翌日には4.0アルファがリリースされていた。<br />
当初は、ベータだったのに、アルファに後退している。あと、数回中間でのリリースがされることが予想される<br />
<br />
3.4.3の変更点は、9/21の時点では、TBDになったいるが、4.0アルファ版は、変更点が掲載されていたので、ざっくり訳してみた(一部分からないところは、省略している)<br />
<br />
原文は、<a href="https://github.com/opencv/opencv/wiki/ChangeLog#version400">ここ</a><br />
<br />
<h3>
4.0前の最初の中間リリースである
</h3>
OpenCV 4.0 は現在C ++ 11ライブラリであり、そのため、C ++ 11準拠のコンパイラが必要。
<br />OpenCV 3.xは、 - DENABLE_CXX11=ONflagをCMakeに渡すことでC ++ 11ライブラリとして構築することができる
<br />しかし、いまでは、そのフラグは不要で、りようできない。
<br /><br />拡張されたC ++ 11標準ライブラリのおかげで、独自のcv::String and cv::Ptrを取り除くことができる
<br />現在、cv::String と std::string は同じで、cv::Ptr は、std::shared_ptrのラッパーである。
<br />Linux/BSD parallel_for_ のデフォルトは、pthreadsの代わりに、std::threadsを使用します
<br /><br />
<h4>
DNN の改良
</h4>
Mask-RCNN モデルサポート
<br />ONNXパーサーの統合により、多くの分類用ネットワークを読み込むことができる。
<br />ONNX 版の YOLOは、 最終領域情報を出力する最終層がサポートされていない。
<br />Intel DLDTサポートを組み込んだDNNモジュールのパフォーマンスをさらに向上させた。
<br /><br />
<h4>
パフォーマスの改良
</h4>
ワイドユニバーサル組み込み関数により、多くの基本カーネルを書き直した。
<br />ターゲットプラットフォームとコンパイルフラグに応じて、これらの関数は、SSE2, SSE4, AVX2, NEON or VSXにMAPされている。
<br />CPU_BASELINE=AVX2 CMake flagを設定してコンパイルすれば、特定の画像処理操作で、15から30%速度が向上する
<br />OpenCV 4.0では、より多くのカーネルをこのような組み込み関数に変換し、ダイナミックディスパッチメカニズムを採用する予定。
<br />実際のハードウェアが、AVX2命令をサポートしている場合、AVX2最適化カーネルが実行時に選択される
<br /><br /><b>QRコード</b>検出が、サンプルとともに、物体検出モジュールに追加された。
<br /><br />人気のある<b>Kinect Fusion</b>が、CPUとGPU(OpenCL)用に最適化されて実装され、opencv_contrib/rgbd モジュールに統合された
<br />ライブサンプルを作成するために、opencv/videoioモジュールに、 Kinect 2サポートを行った。<br />
<br />
<br />
CUDAのcontribへの移動は触れられていない<br />
<br />
以上<br />
<br />OpenCV 備忘録http://www.blogger.com/profile/10220249018358948739noreply@blogger.com0tag:blogger.com,1999:blog-6697164731319272818.post-52316348611823722822018-09-19T23:16:00.000+09:002018-09-19T23:16:44.366+09:00数日以内にOpenCV 4.0ベータがリリースされる予定である。<br />
<a href="https://github.com/opencv/opencv/wiki/2018#2018-09-12">先週の会議メモ</a>によると今週水曜日(日本時間だと木曜)に4.0のベータ版のリリースが予定されている<br /><br /><a href="https://github.com/opencv/opencv/milestone/14">4.0アルファ(午前の記述はベータだった)のIssues</a>は、23時の時点で2個Openなっている。これが0になったらリリースされるのか、そのままリリースされるのかは分からない<br /><br />公式リリースを待たなくてもmasterのファイルを調べてみると、いくつかの追加機能が確認できる。<br />
<br />
力を入れているdnnモジュールは、ONNX対応になっている。リリースされたら、試してみる予定である。OpenCV 備忘録http://www.blogger.com/profile/10220249018358948739noreply@blogger.com0tag:blogger.com,1999:blog-6697164731319272818.post-45862616536923816852018-09-05T23:51:00.001+09:002018-09-05T23:51:58.036+09:00OpenCV 3.4.3でYolo V3を試してみた (I tried Yolo V3 with OpenCV 3.4.3) <div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiImRKEkntJCXJd57X0gqNO5FKkoQ7n2xubOmk0sigN71Uaxm1aAVVEjgo_kQDdb3fAZ3DSpLNY4m4BtXE0kr2jj1WdWVax6xuEzXi2pHPZF9BdgXiW4A3-t0LhS-WhY8ZchyBaT6I5GgzV/s1600/Screenshot+from+2018-09-05+23-45-48.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="478" data-original-width="800" height="238" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiImRKEkntJCXJd57X0gqNO5FKkoQ7n2xubOmk0sigN71Uaxm1aAVVEjgo_kQDdb3fAZ3DSpLNY4m4BtXE0kr2jj1WdWVax6xuEzXi2pHPZF9BdgXiW4A3-t0LhS-WhY8ZchyBaT6I5GgzV/s400/Screenshot+from+2018-09-05+23-45-48.png" width="400" /></a></div>
<br />
3.4.2の時の話は<a href="https://iwaki2009.blogspot.com/2018/07/opencv-342yolov3-i-tried-yolo-v3-with.html">ここ。</a><br />
<br />
3.4.2でためした時から以下の変更あり<br />
<br />
<h4>
1. サンプルのtipoが修正されている</h4>
issueへの報告により、line 23の変数がnmsに<br />
<br />
<h4>
2 windowサイズの問題</h4>
縮小表示される原因がわかり対処<br />
オリジナルのサイズで結果が表示されるようになった。<br />
<br />
<b>原因</b><br />
スクロールバーを表示するために事前にwindwoを作成していたため<br />
<br />
<b>対処</b><br />
line 92から94をコメントアウト <br />
<h4>
3 関連データの場所</h4>
configファイルは<a href="https://github.com/opencv/opencv_extra/blob/master/testdata/dnn/yolov3.cfg">ここ</a><br />
Weightファイルは<a href="https://pjreddie.com/media/files/yolov3.weights">ここ</a><br />
クラス名は<a href="https://github.com/opencv/opencv/blob/3.4.3/samples/data/dnn/object_detection_classes_yolov3.txt">ここ </a><br />
<br />
これらは、<a href="https://github.com/opencv/opencv/tree/3.4.3/samples/dnn">dnn サンプルページ</a>の下段のここからたどる<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEheEhJO5MWCOn2FKc9kI6Vg6avlnl3_GmHLAA54oqfnVvj9vNrmb4ErrnZfkd6Xe3-Gc8rTOUTCbGPRU1s_wpO7XNyDORoxZmTtcKCa8jyUvXkNNhQwihEFBeaax8zKEs-qt6PXodIYScan/s1600/Screenshot+from+2018-09-05+23-44-20.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="191" data-original-width="646" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEheEhJO5MWCOn2FKc9kI6Vg6avlnl3_GmHLAA54oqfnVvj9vNrmb4ErrnZfkd6Xe3-Gc8rTOUTCbGPRU1s_wpO7XNyDORoxZmTtcKCa8jyUvXkNNhQwihEFBeaax8zKEs-qt6PXodIYScan/s1600/Screenshot+from+2018-09-05+23-44-20.png" /></a></div>
<br />
コマンドは、以下のもの<br />
(オリジナルを修正しているため、ファイル名を買えている) <br />
<br />
./yolov3_object_detection -config=yolov3.cfg -model=yolov3.weights -input=train1.png -width=416 -height=416 -scale=0.00392 -classes=object_detection_classes_yolov3.txt -rgb=true<br /><br />
<br />OpenCV 備忘録http://www.blogger.com/profile/10220249018358948739noreply@blogger.com0tag:blogger.com,1999:blog-6697164731319272818.post-15806396810072434822018-09-05T23:03:00.002+09:002018-09-05T23:09:55.244+09:00OpenCV 3.4.3 がリリースされた (OpenCV 3.4.3 was released) <div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqmxqKq1PRC_uHVFPFtgxZgNLmq9EHY6vlYzY2u-8_7AE3MbqYXdCVFnFncsToGZ1IEdNKCBS0b5P8RkZ4jXyRmi9KfX9BUUz7jwyWBg8z-Ts52pa9B9KTiPdTq0rH_2o_3uuo4bQSC-Ei/s1600/Screenshot+from+2018-09-05+22-53-51.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="414" data-original-width="480" height="345" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqmxqKq1PRC_uHVFPFtgxZgNLmq9EHY6vlYzY2u-8_7AE3MbqYXdCVFnFncsToGZ1IEdNKCBS0b5P8RkZ4jXyRmi9KfX9BUUz7jwyWBg8z-Ts52pa9B9KTiPdTq0rH_2o_3uuo4bQSC-Ei/s400/Screenshot+from+2018-09-05+22-53-51.png" width="400" /></a></div>
<br />
<br />
<br />
3.4.2同様に公式発表はありませんが、3.4.3が8/29にリリースされました<br />
<br />
リリース情報 なし<br />
<br />
<a href="https://docs.opencv.org/3.4.3/">ドキュメント</a><br />
<a href="https://github.com/opencv/opencv/wiki/ChangeLog#version343">変更点 (書きかけ)</a><br />
<a href="https://github.com/opencv/opencv/tree/3.4.3">github</a><br />
<br />
また、予定日は記載されて以内が、<a href="https://github.com/opencv/opencv/milestone/18">3.4.4</a>の準備が進んでいる<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgeTR_WtAJg8dp2EZ1sPGs0ekALqM4PNCSdYcF9FinK7smY3Mj8A4vSoxOcICTW6K78bIn-lTQry26LCeiwLUIH8DMxdmnZclTad0EJgjz2YNCAX7F143fVda7IzEvxUTFYQDU6guG2RVWH/s1600/Screenshot+from+2018-09-05+23-02-53.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="269" data-original-width="395" height="271" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgeTR_WtAJg8dp2EZ1sPGs0ekALqM4PNCSdYcF9FinK7smY3Mj8A4vSoxOcICTW6K78bIn-lTQry26LCeiwLUIH8DMxdmnZclTad0EJgjz2YNCAX7F143fVda7IzEvxUTFYQDU6guG2RVWH/s400/Screenshot+from+2018-09-05+23-02-53.png" width="400" /></a></div>
<br />
以上OpenCV 備忘録http://www.blogger.com/profile/10220249018358948739noreply@blogger.com0tag:blogger.com,1999:blog-6697164731319272818.post-49636588783884378982018-07-18T23:42:00.004+09:002018-09-19T23:39:47.223+09:00ubuntuの各種ツール、ライブラリのバージョン確認方法 2018/07/18<h3 style="-webkit-text-stroke-width: 0px; background-color: white; color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; letter-spacing: normal; margin: 0px; orphans: 2; position: relative; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;">
はじめに</h3>
<span style="background-color: white; color: #222222; display: inline; float: none; font-family: "arial" , "tahoma" , "helvetica" , "freesans" , sans-serif; font-size: 13.2px; font-style: normal; font-weight: normal; letter-spacing: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">環境構築時に影響を及ぼす、各種ツール、ライブラリのバージョンの確認方法をメモしたものである</span><br />
<span style="background-color: white; color: #222222; display: inline; float: none; font-family: "arial" , "tahoma" , "helvetica" , "freesans" , sans-serif; font-size: 13.2px; font-style: normal; font-weight: normal; letter-spacing: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">2018/7/18版 </span><br />
<span style="background-color: white; color: #222222; display: inline; float: none; font-family: "arial" , "tahoma" , "helvetica" , "freesans" , sans-serif; font-size: 13.2px; font-style: normal; font-weight: normal; letter-spacing: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;"> </span> <br />
<b>ubuntu </b><br />
<span style="color: blue;">cat /etc/lsb-release</span><br />
<strike>DISTRIB_DESCRIPTION="Ubuntu 16.04.4 LTS"</strike><br />
DISTRIB_DESCRIPTION="Ubuntu 16.04.5 LTS" (9/19) <br />
<br />
<b>kernel</b><br />
<span style="color: blue;">uname -r</span><br />
<strike>4.4.0-130-generic</strike><br />
4.4.0-135-generic (9/19)<br /><br />
<br />
<b>gcc</b><br />
<span style="color: blue;">gcc --version</span><br />
gcc (Ubuntu 5.4.0-6ubuntu1~16.04.10) 5.4.0 20160609<br />
<b><br />docker</b><br />
<span style="color: blue;">docker --version</span><br />
Docker version 17.05.0-ce, build 89658be<br />
<b><br />GPUボード情報</b><br />
<span style="color: blue;">nvidia-smi</span><br />
<br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">+-----------------------------------------------------------------------------+<br />| NVIDIA-SMI 384.130 Driver Version: 384.130 |<br />|-------------------------------+----------------------+----------------------+<br />| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |<br />| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |<br />|===============================+======================+======================|<br />| 0 GeForce GTX 105... Off | 00000000:01:00.0 On | N/A |<br />| 43% 28C P8 ERR! / 75W | 399MiB / 4037MiB | 0% Default |<br />+-------------------------------+----------------------+----------------------+<br /> <br />+-----------------------------------------------------------------------------+<br />| Processes: GPU Memory |<br />| GPU PID Type Process name Usage |<br />|=============================================================================|<br />| 0 1036 G /usr/lib/xorg/Xorg 221MiB |<br />| 0 2538 G compiz 98MiB |<br />| 0 3686 G ...-token=FBE45A9952681D539215C61CB0298B6B 75MiB |<br />+-----------------------------------------------------------------------------+</span>OpenCV 備忘録http://www.blogger.com/profile/10220249018358948739noreply@blogger.com0tag:blogger.com,1999:blog-6697164731319272818.post-12307261408002581862018-07-14T01:12:00.001+09:002018-07-14T01:12:09.279+09:00OpenCV 3.4.3のリリースが予定されている<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhohSFLkTVXk1tjy4UOExRqBH0TKQtLhBpyKFIMErPhbzJNrA79j8KmZm9ve7zxzHSJOnV2Jsupla__UUb10fKm1BdjbDDHygaXgs3_VgYwkfxlqB5jCz6Q6r_1VmMUlabMweWNzNz83j1V/s1600/Screenshot+from+2018-07-14+01-06-30.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="255" data-original-width="591" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhohSFLkTVXk1tjy4UOExRqBH0TKQtLhBpyKFIMErPhbzJNrA79j8KmZm9ve7zxzHSJOnV2Jsupla__UUb10fKm1BdjbDDHygaXgs3_VgYwkfxlqB5jCz6Q6r_1VmMUlabMweWNzNz83j1V/s1600/Screenshot+from+2018-07-14+01-06-30.png" /></a></div>
<br /><br />7/4に3.4.2がリリースされたばかりであるが、3.4.3が既に計画されている。(リリース日は未定)<br />マイルストーン情報は<a href="https://github.com/opencv/opencv/milestone/17" target="_blank">ここ</a> <br /><br />この情報を知ったのは、一昨日に<a href="https://github.com/opencv/opencv/issues/11947" target="_blank">issueとして報告</a>したbugの修正版が、3.4.3にマージされたとの報告があったため。<br /><br />
どこのコードに反映されているのかGitHubの運用方法をよく理解していなく、いろいろ見て見たところ<a href="https://github.com/opencv/opencv/tree/3.4/samples">ブランチ3.4</a>にマージされていた<br /><br />サイト主は、GitHUBには疎いので、自分でPRをすることができない。今後、この辺の仕組みを調べて自分でPR出きるようにしたい。OpenCV 備忘録http://www.blogger.com/profile/10220249018358948739noreply@blogger.com0tag:blogger.com,1999:blog-6697164731319272818.post-89082741607585761572018-07-14T00:58:00.001+09:002018-07-14T00:58:33.806+09:00OpenCV 3.4.2 for windows Prebuild版のConfigrationを表示させてみた (I displayed a configration of OpenCV 3.4.2 for windows prebuild version.)<br />
Windows版のOpenCVは、ソースだけでなく、ビルドされたバイナリーファイルも同梱されている。<br />同梱されているバイナリーのConfigrationは、cv::getBuildInformation() APIで取得できる<br /><br />上記APIを表示されるソースファイルを作成し、Windowsコンソールで実行させ、出力をファイルとして<a href="https://drive.google.com/file/d/1qaVyRQ3jgXuYD-tZxF_R9P8uzFncoxHi/view?usp=sharing" target="_blank">ここに保存</a>した。<br /><br /><b>・有効モジュール</b><br /> calib3d core dnn features2d flann highgui imgcodecs imgproc java_bindings_generator ml objdetect photo python_bindings_generator shape stitching superres video videoio videostab world<br /><br /><b>CPU/HW 最適化 </b><br /> Baseline: SSE SSE2 SSE3 <br /> requested: SSE3 <br /> Dispatched code generation: SSE4_1 SSE4_2 FP16 AVX AVX2 <br /> requested: SSE4_1 SSE4_2 AVX FP16 AVX2 AVX512_SKX <br /> SSE4_1 (3 files): + SSSE3 SSE4_1 <br /> SSE4_2 (1 files): + SSSE3 SSE4_1 POPCNT SSE4_2 <br /> FP16 (1 files): + SSSE3 SSE4_1 POPCNT SSE4_2 FP16 AVX <br /> AVX (5 files): + SSSE3 SSE4_1 POPCNT SSE4_2 AVX <br /> AVX2 (9 files): + SSSE3 SSE4_1 POPCNT SSE4_2 FP16 FMA3 AVX AVX2<br /><br /><br /><b>気になったオプション</b><br /> JPEG: build-libjpeg-turbo (ver 1.5.3-62)<br /> Parallel framework: Concurrency<br /> OpenCL: YES (no extra features)<br /><br />
<br />OpenCV 備忘録http://www.blogger.com/profile/10220249018358948739noreply@blogger.com0tag:blogger.com,1999:blog-6697164731319272818.post-2602444267797637322018-07-12T18:08:00.000+09:002018-07-12T18:14:17.215+09:00OpenCV 3.4.2でYolo V3を試してみた (I tried Yolo V3 with OpenCV 3.4.2)<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLG2984Fj3b-nFUGfu2JHLwvnaIOSdH0_kkU_Egt_ajdetxu1U2jyrWmIrz7EJx5kZggS1PMW-rNduy9h5wnlB-7mKnc-Nbf2x4x0wGKLy23r50FQfi1M3QDqTaAktzkA9WP8lxOUNoOIz/s1600/Screenshot+from+2018-07-12+18-00-58.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="420" data-original-width="611" height="273" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLG2984Fj3b-nFUGfu2JHLwvnaIOSdH0_kkU_Egt_ajdetxu1U2jyrWmIrz7EJx5kZggS1PMW-rNduy9h5wnlB-7mKnc-Nbf2x4x0wGKLy23r50FQfi1M3QDqTaAktzkA9WP8lxOUNoOIz/s400/Screenshot+from+2018-07-12+18-00-58.png" width="400" /></a></div>
<br />
<br />
3.4.1の時からYoloのV3がサポートされてたようである<br />
使用したサンプルファイルは、<a href="https://github.com/opencv/opencv/blob/3.4.2/samples/dnn/object_detection.cpp" target="_blank">これ</a><br />
<br />
ただし、1ヶ所間違い(line 25)があり、issueとして報告中<br />
<br />
誤 "{ thr | .4 | Non-maximum suppression threshold. }"<br />
正 "{ nms | .4 | Non-maximum suppression threshold. }"<br />
<br />
ビルドして下記コマンドを実行<br />
./object_detection -config=yolov3.cfg -model=yolov3.weights -input=train1.png -width=416 -height=416 -scale=0.00392 -classes=coco.names -rgb=true<br />
<br />
configファイルは<a href="https://raw.githubusercontent.com/opencv/opencv_extra/master/testdata/dnn/yolov3.cfg" target="_blank">ここに</a><br />
Weightファイルは<a href="https://pjreddie.com/media/files/yolov3.weights" target="_blank">ここに</a><br />
(サイズが248Mあり、サーバが細いのでダウンロードに約30分かかる) <br />
<br />
結果は冒頭の画像(色は変更している) <br />
trainのconfidenceが1となっており、V2と比較して向上していると思われる<br />
<br />
トラックバーは動かしても再計算されないので、修正が必要<br />
(カメラストリームの場合は有効、静止画には意味ない)<br />
<br />
なぜか結果が縮小されて表示されるので調査中OpenCV 備忘録http://www.blogger.com/profile/10220249018358948739noreply@blogger.com0tag:blogger.com,1999:blog-6697164731319272818.post-30221759591254169982018-07-12T13:34:00.004+09:002018-07-12T13:53:28.666+09:00Open CV 3.4.2のdnnのsampleを眺めてみた (I looked through the sample of dnn of Open CV 3.4.2)<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglelL60hsF92fwQtVVa4HH-RGlEV60yYzxqVHqbpjjWhcWgL0zUrCFYY8zDlKXRlAC0Ico-rh6m6bf7rbDLG45SA5D6r3uVDR4sSBHnaWmxqa2c6Daj-lucIOKyFY-FAppS18vL7lYop0F/s1600/Screenshot+from+2018-07-12+13-24-03.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="654" data-original-width="461" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglelL60hsF92fwQtVVa4HH-RGlEV60yYzxqVHqbpjjWhcWgL0zUrCFYY8zDlKXRlAC0Ico-rh6m6bf7rbDLG45SA5D6r3uVDR4sSBHnaWmxqa2c6Daj-lucIOKyFY-FAppS18vL7lYop0F/s1600/Screenshot+from+2018-07-12+13-24-03.png" /></a></div>
<br />
<br />
サンプルは<a href="https://github.com/opencv/opencv/tree/3.4.2/samples/dnn" target="_blank">ここ</a><br />
build の時間短縮のため、sample ファイルの build は行わず、必要に応じて個々にビルドしている<br />
最近では python のサンプルもあるので、手軽にためせる。<br />
<br />
最近OpenCV.orgがフォーカスしているのが dnn まわりで、サンプルも修正され、3.4.1と比較すると、モデル別のサンプルが、classification と object_detection に集約されている<br />
<br />
集約されたためサンプルファイル数は減少したが、ソースが肥大化(結果のデータの取得方法と描画がifで記載されている)しているのは、いただけない。<br />
また、windowにトラックバーがつくようになり、しきい値の調整ができる。<br />
<br />
各種のWeightデータは、<a href="https://github.com/opencv/opencv_extra/blob/master/testdata/dnn/download_models.py" target="_blank">pythonのスクリプト</a>で一括ダウンロード行うようになっているが、時間がかかるため、スクリプトを修正して必要なものだけダウンロードすればよいOpenCV 備忘録http://www.blogger.com/profile/10220249018358948739noreply@blogger.com0tag:blogger.com,1999:blog-6697164731319272818.post-38073673939785057062018-07-12T13:08:00.002+09:002018-07-12T13:08:40.020+09:00OpenCV 3.4.2 がリリースされた (OpenCV 3.4.2 was released)<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqnoSJS8P4uGzO6PAwcJYeeNleIVb3GTQkn4EgOl4wYg0jwXYxitDREOR8qMyha7zTyPoRwcn7ten8Ur8GGWM242w6jXtMVnb_Knn9pcB32o1bFv-HE_Kp0UmdYFPXsvhzEY0eQmDLgNqo/s1600/Screenshot+from+2018-07-12+13-06-30.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="407" data-original-width="462" height="351" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqnoSJS8P4uGzO6PAwcJYeeNleIVb3GTQkn4EgOl4wYg0jwXYxitDREOR8qMyha7zTyPoRwcn7ten8Ur8GGWM242w6jXtMVnb_Knn9pcB32o1bFv-HE_Kp0UmdYFPXsvhzEY0eQmDLgNqo/s400/Screenshot+from+2018-07-12+13-06-30.png" width="400" /></a></div>
<br /><br />公式発表はありませんが、3.4.2が7/4にリリースされました<br /><br />リリース情報 なし<br /><a href="https://docs.opencv.org/3.4.2/" target="_blank">ドキュメント</a><br /><a href="https://github.com/opencv/opencv/wiki/ChangeLog" target="_blank">変更点は記載なし</a><br /><a href="https://github.com/opencv/opencv/tree/3.4.2" target="_blank">github</a><br /><br />以上OpenCV 備忘録http://www.blogger.com/profile/10220249018358948739noreply@blogger.com0tag:blogger.com,1999:blog-6697164731319272818.post-25812714212047060352017-12-16T00:02:00.004+09:002017-12-16T00:02:58.641+09:00今年もOpenCV Advent Calendar 2017に投稿した。はじめに<br />
<br />
今年も<a href="https://qiita.com/advent-calendar/2017/opencv" target="_blank">OpenCV Advent Calendar 2017</a>に2件投稿した。<br />
<br />
15日予定のOpenCV3.4RCがリリースされなかったため、急遽内容を変更したが、今年も滑り込みで、担当日である9日、16日の記事を間に合わすことができた。<br />
<br />
今年の2件は、<br />
9日 <a href="https://qiita.com/TaroYamada/items/cf3dd81b4790303ade57" target="_blank">OpenCV と Intel Movidius Neural Compute Stick のSDKを連携させた。</a><br />
16日 <a href="https://qiita.com/TaroYamada/items/53074917394e0d58afa9" target="_blank">OpenCV 3.3.1のUMatで処理時間の短縮を確認してみた</a><br />
<br />
急いで書いたので、言葉たらず状態なので、気力が回復したら、このblogに、補足として記載していくつもりである。<br />
<br />
以上 OpenCV 備忘録http://www.blogger.com/profile/10220249018358948739noreply@blogger.com0tag:blogger.com,1999:blog-6697164731319272818.post-80992584510216456382017-12-05T22:22:00.001+09:002017-12-05T22:22:21.228+09:00Open CV 3.4 のリリース予定が公表された。<br />
<a href="https://github.com/opencv/opencv/wiki/2017#2017-12-04" target="_blank">12/4の会議メモ</a>で3.4のリリース予定が記載されていた。<br /><br />
それによると、12/15日 が 3.4 RC版、翌週 12/22が正式リリース予定とのこと<br />
<h4>
特徴</h4>
・GSoCの成果を統合<br />・背景分離<br />・ドキュメントの多言語化<br />・deepnetでのOpenCLの改良<br />・deepnet関連<br /> 多数<br /><br />など<br />
<br />OpenCV Advent Calendar 2017 の担当日が16日になので、3.4RC版を対象にしようか考え中OpenCV 備忘録http://www.blogger.com/profile/10220249018358948739noreply@blogger.com0tag:blogger.com,1999:blog-6697164731319272818.post-89525432019447927112017-12-02T00:02:00.001+09:002017-12-02T00:02:25.914+09:00DeepLensが発表された。<h4>
発表内容のメモ</h4>
Amazon主催の re:Invent で DeepLens が発表された。<br />DeepLens の説明は<a href="https://aws.amazon.com/jp/blogs/news/deeplens/" target="_blank">ここ</a><br /><br />気になる点<br />CPU Intel Atom<br />OS Ubuntu 16.04<br />ライブラリ <a href="https://github.com/intel/clDNN" target="_blank">Intel clDNN</a><br /><br /><br />対応フレームワーク<br /> TensorFlowやCaffe2など<br /><br /><a href="https://www.amazon.com/dp/B075Y3CK37" target="_blank">注文ページ</a><br />発売は、April 14, 2018.<br />価格 249.00 <br /><br /><span style="color: red;"><b>This item does not ship to Japan. とのこと残念</b></span><br />
<br />ワークショップのサンプルコードが公開されている<br /><a href="https://github.com/aws-samples/reinvent-2017-deeplens-workshop" target="_blank">Reinvent 2017 Deeplens Workshop</a><br /><br /><br />キーワードに<br />SageMaker, Greengrass, Lambda があるがまったく未知の分野 OpenCV 備忘録http://www.blogger.com/profile/10220249018358948739noreply@blogger.com0tag:blogger.com,1999:blog-6697164731319272818.post-90257929942930940722017-12-01T23:43:00.000+09:002017-12-01T23:43:13.577+09:00久しぶりに Windows上でOpenCVのアプリを作成したらigdrcl64.dllがエラーをはいた。<h3>
はじめに</h3>
<br />最近ubuntu上でアプリを作成していたが、久しぶりにWindowsでOpen CVのアプリを作成した。<br />作成したアプリは、コンソール上では、問題なく動作するが、Visual Studioから実行するとエラーが生じる現象に遭遇しあせった。<br />
<h4>
環境</h4>
Windows 10 64bit pro<br /> OSのバージョン記録し忘れ<br /><br />OpenCVは、<a href="https://opencv.org/releases.html" target="_blank">ここ</a>から3.3.1 Win packをダウンロードし展開したもの。<br /><br />開発環境はVisual Studio 2015 Community edition<br /><br />プログラムは、画像を表示させるだけの簡単なものであった。<br />
<h4>
昔と異なる点</h4>
・提供されている共有ライブラリが、opencv_world 331d.dll と opencv_world 331d.dll だけになっていたこと<br />
pathを設定するのが手間だったので、この2つを c:\windows\system32のフォルダーにコピー<br /><br />
<h4>
原因不明のエラー</h4>
普通にMatにカラー画像を読み込み、imshowで表示させるだけのプログラムであったが、なぜか、<br />imshowのところで落ちてしまう。初めての現象に遭遇し、かなりあせった。昔のブログを見ても該当するものはなし。<br /><br />エラーの画面をダンプし忘れたが、エラーメッセージをよく見ると、igdrcl64.dllが問題とのこと<br /><br />
google先生に尋ねたところ、<a href="http://answers.opencv.org/question/132861/opencl-access-violation-with-x64msvc2015/" target="_blank">Open CV のフォーラム</a>にそれらしきものを発見。<br /><br />
<h4>
対応策</h4>
#include <opencv2/core/ocl.hpp>と<br />とプログラムの冒頭に<br />cv::ocl::setUseOpenCL(false);<br />を追加したら、エラーは、発生せず問題なく画像が表示できた。<br />
<br />
<br />微妙に環境が異なる他のWindowsPCでは発生せず、どの組み合わせが悪いかは、調査はしていない。<span style="color: magenta;"><i>他のPCでも再現したら、Advent のネタにしようかと考えたがやめにした。</i></span><br /><br />
<h4>
メモ</h4>
専用のプロパティシートを作成しておく<br /><br />ライブラリの指定は、<br /><br />#if _DEBUG<br />#pragma comment(lib, "opencv_world331d.lib")<br />#else<br />#pragma comment(lib, "opencv_world331.lib")<br />#endif<br />でOKOpenCV 備忘録http://www.blogger.com/profile/10220249018358948739noreply@blogger.com1tag:blogger.com,1999:blog-6697164731319272818.post-75444540311328728572017-11-27T22:24:00.000+09:002017-11-27T22:24:24.164+09:00Intel Movidius Neural Compute Stick の環境を準備した<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiusiDPxY2vxo1X0hFaJhjVJfTvaPdSKCbbuQ2zlz1Guazrze5cH38MP4VBzyNWslVrKOS7vp9H7xtrEevAlMLwLte7sMHWKX-GftNt24Jl-XkM5sIelny0MmYbFlcmkzcZRpme42Y-Hlh8/s1600/IMG_20171113_233812.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="480" data-original-width="640" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiusiDPxY2vxo1X0hFaJhjVJfTvaPdSKCbbuQ2zlz1Guazrze5cH38MP4VBzyNWslVrKOS7vp9H7xtrEevAlMLwLte7sMHWKX-GftNt24Jl-XkM5sIelny0MmYbFlcmkzcZRpme42Y-Hlh8/s400/IMG_20171113_233812.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Movidius NCS</td></tr>
</tbody></table>
<h2>
はじめに</h2>
Movidius NCS を購入したのでubuntu 16.04に動作環境を作成した。<br />SDKのバージョンは、1.10.01.01を使用している。<br />
<h4>
ソースの取得</h4>
<a href="https://github.com/movidius/ncsdk/tree/v1.10.01.01" target="_blank">ここ</a>からソース一式をダウンロード<br />
展開して、フォルダー名をncsdkに変更し、ncsdkに移動。<br />
<h4>
ビルド</h4>
make install<br /><br />成功すると以下のメッセージが表示される<br /><br />Successfully installed mvnc-1.10.1.0<br />NCS Libraries have been installed in /usr/local/lib<br />NCS Toolkit binaries have been installed in /usr/local/bin<br />NCS Include files have been installed in /usr/local/include<br />NCS Python API has been installed in /opt/movidius, and PYTHONPATH environment variable updated<br /><br />
<h4>
Movidius を挿入</h4>
dmesgで認識されているか確認<br />
<br />usb 3-3: new high-speed USB device number 4 using xhci_hcd<br />usb 3-3: New USB device found, idVendor=03e7, idProduct=2150<br />usb 3-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3<br />usb 3-3: Product: Movidius MA2X5X<br />usb 3-3: Manufacturer: Movidius Ltd.<br />usb 3-3: SerialNumber: 03******<br /><br />
<h4>
サンプルの実行</h4>
<span style="color: blue;">python版</span><br />~/ncsdk/examples/apps/hello_ncs_py$ make run<br /><br />making run<br />python3 hello_ncs.py;<br />Hello NCS! Device opened normally.<br />Goodbye NCS! Device closed normally.<br />NCS device working.<br /><br /><span style="color: blue;">c++版</span><br />~/ncsdk/examples/apps/hello_ncs_cpp$ make run<br /><br />making hello_ncs_cpp<br />g++ cpp/hello_ncs.cpp -o cpp/hello_ncs_cpp -lmvnc<br />Created cpp/hello_ncs_cpp executable<br /><br />making run<br />cd cpp; ./hello_ncs_cpp; cd ..<br />Hello NCS! Device opened normally.<br />Goodbye NCS! Device Closed normally.<br />NCS device working.<br /><br />
<h4>
コメント</h4>
環境構築時に多数のライブラリがインストールされ、環境が汚染された気がする。<br /><br /><br />以上<br />OpenCV 備忘録http://www.blogger.com/profile/10220249018358948739noreply@blogger.com0tag:blogger.com,1999:blog-6697164731319272818.post-59166904063073648502017-11-20T23:23:00.002+09:002017-11-20T23:23:26.099+09:00OpenCV の dnn の順方向のデータ伝搬に関して調べてみた。<h4>
はじめに</h4>
OpenCV の<a href="https://docs.opencv.org/3.3.1/d5/de7/tutorial_dnn_googlenet.html" target="_blank">チュートリアルの解説</a>では、順方向のデータ伝搬に関しては、<br /><br />6 Make forward pass<br />
<br /> prob = net.forward("prob"); //compute output<br /><br />
During the forward pass output of each network layer is computed, but in this example we need output from "prob" layer only.<br /><br />と解説されている。<br /><br />以前からこの最後のレイヤー名を指定するのは、レイヤー名を知っていることが前提であり、少し不便かと思っていた。<br /><br />
そこで、<a href="https://docs.opencv.org/3.3.1/db/d30/classcv_1_1dnn_1_1Net.html#a98ed94cb6ef7063d3697259566da310b" target="_blank">関数の説明</a>を調べてみたら、モデルの最終レイヤーからの出力が欲しい場合、レイヤー名を指定しなくても(デフォルト値)問題ないことが分かった。<br /><br /><span style="color: blue;">forward() [1/4]<br />Mat cv::dnn::Net::forward ( const String & outputName = String())<br /><br />By default runs forward pass for the whole network.</span><br /><br />試しに、caffe_googlenet.cpp で、<br /><br />prob = net.forward();<br /><br />に変更してみても、オリジナルと同等の結果を得られたことを確認した。<br /><br />以上<br />OpenCV 備忘録http://www.blogger.com/profile/10220249018358948739noreply@blogger.com0tag:blogger.com,1999:blog-6697164731319272818.post-68778433802758220502017-11-20T23:06:00.004+09:002017-11-20T23:06:47.694+09:00OpenCV の dnn でレイヤー名を取得した。<h4>
はじめに</h4>
今回、レーヤーのクラス名を取得する getLayerNames() を試してみた。<br /><br />関数の説明は、 <a href="https://docs.opencv.org/3.3.1/db/d30/classcv_1_1dnn_1_1Net.html#ae8be9806024a0d1d41aba687cce99e6b" target="_blank">ここ</a><br /><br /><h3>
サンプルソースの修正</h3>
caffe_googlenet.cpp の readNetFromCaffe のあとに、<br /><br /> std::vector<String> lname = net.getLayerNames();<br /> for (int i = 0; i < lname.size();i++) {<br /> std::cout << i+1 << " " << lname[i] << std::endl;<br /> }<br /><br />を追加。<br /><br />ビルドして、実行すると<br /><br /> ./caffe_googlenet <br /><span style="color: blue;">1 conv1/7x7_s2<br />2 conv1/relu_7x7<br />3 pool1/3x3_s2<br />4 pool1/norm1<br />5 conv2/3x3_reduce<br />6 conv2/relu_3x3_reduce<br />7 conv2/3x3<br />8 conv2/relu_3x3<br />9 conv2/norm2<br />10 pool2/3x3_s2<br /><br />略<br /><br />140 pool5/drop_7x7_s1<br />141 loss3/classifier<br />142 prob</span><br />Best class: #812 'space shuttle'<br />Probability: 99.9935%<br />Time: 23.7494 ms (average from 10 iterations)<br /><br />のような表示となる。<br />
<br />
以上 <br />
<br />OpenCV 備忘録http://www.blogger.com/profile/10220249018358948739noreply@blogger.com0tag:blogger.com,1999:blog-6697164731319272818.post-4129297359641168602017-11-13T23:25:00.003+09:002017-11-13T23:25:45.536+09:00OpenCV master のスタイル変換サンプルプログラムでいくつかのモデルを試してみた。 その2<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7rwnNO761UoerYVgRcqKGs84XcVIV7OPg8AM6EkUL-sl0PtXWMnPg-2inff8GeBuGlgcZNPOh3_bymja4rT0Wfsm2sS5sx6sqbjZSXHdpnC8fAsJeYdObs1boXZql8NfY8RnumJhziWXV/s1600/composition_vii.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="452" data-original-width="800" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7rwnNO761UoerYVgRcqKGs84XcVIV7OPg8AM6EkUL-sl0PtXWMnPg-2inff8GeBuGlgcZNPOh3_bymja4rT0Wfsm2sS5sx6sqbjZSXHdpnC8fAsJeYdObs1boXZql8NfY8RnumJhziWXV/s400/composition_vii.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">composition_vii</td></tr>
</tbody></table>
<h4>
はじめに</h4>
<a href="https://iwaki2009.blogspot.jp/2017/11/opencv-master-i-tried-several-models.html" target="_blank">前回</a>のつづき。<br /><br />今回は、同じ画像を題材に、eccv16 のモデルを適用してみた。<br /><br />モデルのサイズは、約25Mぐらいである。<br />提供されているモデルは、以下の4個である。<br /><br />
<ul>
<li>the_wave.t7</li>
<li>starry_night.t7</li>
<li>la_muse.t7</li>
<li>composition_vii.t7</li>
</ul>
<h4>
結果</h4>
<div class="separator" style="clear: both; text-align: center;">
</div>
表題の画像は、composition_viiのモデルを摘要したものである。<br /><br />以下残りの3つの摘要結果を示す。<br /><br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhP4RfznWuyog1z1YGk5RHE77ZbQb68jQaPaRIXYlg-MaXEKLR-JoA2KgQhzGbOzr3tSGU95_tbr2PDobKBoYpbo9cHKrGnRQu6_fVJ9mtZY7K-fK2amKZf6FQBNTTIHyb1Y0Rt1Sts0qeE/s1600/the_wave.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="452" data-original-width="800" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhP4RfznWuyog1z1YGk5RHE77ZbQb68jQaPaRIXYlg-MaXEKLR-JoA2KgQhzGbOzr3tSGU95_tbr2PDobKBoYpbo9cHKrGnRQu6_fVJ9mtZY7K-fK2amKZf6FQBNTTIHyb1Y0Rt1Sts0qeE/s400/the_wave.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">the_wave</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjza1-w0DTqA3vl_0mTeZlKe2Ee-Zl5qKBHBa-yyPw8Ll8m4uERGxKqS_FTAlJSF00_9EpqS-cJ4Wk3zsG2w7xHqpUnvne2dpANlkvOiA5UDcbR9CfRv-gPlNd2u7YsBNVMJxufUgLijHA3/s1600/starry_night.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="452" data-original-width="800" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjza1-w0DTqA3vl_0mTeZlKe2Ee-Zl5qKBHBa-yyPw8Ll8m4uERGxKqS_FTAlJSF00_9EpqS-cJ4Wk3zsG2w7xHqpUnvne2dpANlkvOiA5UDcbR9CfRv-gPlNd2u7YsBNVMJxufUgLijHA3/s400/starry_night.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">starry_night</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxMhIYTc5aPWo7Aoahp_-J0vFVHWkz0DfRWjPwbvCplhmrrUIP-SS8f-_03jJVoDjvx6qchx5UOdB_LZgSO9xMpd573MrBcO0wiQ1p1yNOQRD8d0Ezu2HDT7DZKHxNVMh06xQveMvfvkI6/s1600/la_muse2.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="452" data-original-width="800" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxMhIYTc5aPWo7Aoahp_-J0vFVHWkz0DfRWjPwbvCplhmrrUIP-SS8f-_03jJVoDjvx6qchx5UOdB_LZgSO9xMpd573MrBcO0wiQ1p1yNOQRD8d0Ezu2HDT7DZKHxNVMh06xQveMvfvkI6/s400/la_muse2.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">la_muse</td></tr>
</tbody></table>
<br />
<h4>
モデルの違い</h4>
fast-neural-style のアルゴリズムなど<a href="https://github.com/jcjohnson/fast-neural-style" target="_blank">ここ</a>に概略が記載されている。<br /><br />eccv16 は、オリジナルの論文で使用されたモデルのようである。<br /><br />instance normalization は、派生の様であり、 <br /><br />This simple trick significantly improves the quality of feedforward style transfer models.<br /><br />との説明されている。<br /><br />
<h4>
参考</h4>
<a href="https://qiita.com/underfitting/items/a0cbb035568dea33b2d7" target="_blank">Instance Normalization (全てのサンプルから、平均を引いて、標準偏差で割る)</a><br />OpenCV 備忘録http://www.blogger.com/profile/10220249018358948739noreply@blogger.com0tag:blogger.com,1999:blog-6697164731319272818.post-44007049599708147512017-11-10T23:28:00.000+09:002017-11-13T23:05:14.596+09:00OpenCV master のスタイル変換サンプルプログラムでいくつかのモデルを試してみた。(I tried several models with style conversion sample program of OpenCV master version.)<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWvqcj1kcOyajzshQpAiNQe0FQRBoGNy6NSarZRLAvcPknYlBP_FsiZvvx8wBGvFkYgQSRPEn0pUq9DzEQU4G1suOO2HgDNliDJjb6RuKNooy_UMo8JJIxC11FDjpebOIFGY7JAaDCeStf/s1600/the_scream.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="452" data-original-width="800" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWvqcj1kcOyajzshQpAiNQe0FQRBoGNy6NSarZRLAvcPknYlBP_FsiZvvx8wBGvFkYgQSRPEn0pUq9DzEQU4G1suOO2HgDNliDJjb6RuKNooy_UMo8JJIxC11FDjpebOIFGY7JAaDCeStf/s400/the_scream.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">the_scream</td></tr>
</tbody></table>
<h4>
はじめに</h4>
スタイル変換がうまくできたので、残りのモデルをダウンロードして試してみた<br />
<br />
instance_norm の意味は置いておいて試してみた<br />
モデルのサイズは、約15Mぐらいである。<br />
800x450画素の画像の変換に、約400-450msecかかっている<br />
<br />
提供されているモデルは、以下の6個である。<br />
<ul>
<li>candy.t7</li>
<li>feathers.t7</li>
<li>la_muse.t7</li>
<li>mosaic.t7</li>
<li>the_scream.t7</li>
<li>udnie.t7</li>
</ul>
<br />
<h3>
結果</h3>
昨日の画像は、 la_muse のモデルを適用したものである。<br />
<br />
表題の画像は、the_screamのモデルを適用したものである。<br />
<br />
以下残りの4つの適用結果を示す。<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_PZvYID0ltVmRWmnJs6lLpGxRVyo-5J3jbkxrjT8ktdYbTQYOSdWJ1p0HdEYJOmhlXy3Dn0g8AjJxbS7hHWuVTrnSKqECCWRfPNiR6kdfqe7i2fOwvo34jVdoJjwFrVdzy0PP6LtvhnKL/s1600/candy.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="452" data-original-width="800" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_PZvYID0ltVmRWmnJs6lLpGxRVyo-5J3jbkxrjT8ktdYbTQYOSdWJ1p0HdEYJOmhlXy3Dn0g8AjJxbS7hHWuVTrnSKqECCWRfPNiR6kdfqe7i2fOwvo34jVdoJjwFrVdzy0PP6LtvhnKL/s400/candy.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">candy</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjp2jxUe4LwvmvXio2VCoAb4exlNdWund4oGGY5O27iwVLli-w1laOxx6_SERUGwNtFRRN9fVU4KC1Emd2HKumjHiX1rXgppWy92-r11ShuTZtiNgt0EjbsT9tlrA6HICObtkhJ3CmvorKx/s1600/feathers.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="452" data-original-width="800" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjp2jxUe4LwvmvXio2VCoAb4exlNdWund4oGGY5O27iwVLli-w1laOxx6_SERUGwNtFRRN9fVU4KC1Emd2HKumjHiX1rXgppWy92-r11ShuTZtiNgt0EjbsT9tlrA6HICObtkhJ3CmvorKx/s400/feathers.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">feathers</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZINYvsOJkjsEO1QmsL65tZTPcPHCXflnwJyIot1mw1sDziX1qsSL_S9WoM67jTa6vUSX3A2XosVaPiAWrPH_84rRI7qE5P4-QyM35Mtuea7AkkQiz37rkZw07Ey4U5_WvKmZXnQkb9r11/s1600/mosaic.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="452" data-original-width="800" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZINYvsOJkjsEO1QmsL65tZTPcPHCXflnwJyIot1mw1sDziX1qsSL_S9WoM67jTa6vUSX3A2XosVaPiAWrPH_84rRI7qE5P4-QyM35Mtuea7AkkQiz37rkZw07Ey4U5_WvKmZXnQkb9r11/s400/mosaic.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">mosaic</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCJGmsiXPdc1EiQj57KD6hTtZLl6nE56Sdz2-RyMPta94HN3Lzihps3yr9dChFpkVqban67fTwpS_4DrUCWZOCqJHjcxrbTaW7YpMuZdUsXtuUilrMaqyoI-kBtm3vAYTMor05Hzi5Dw2c/s1600/udnie.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="452" data-original-width="800" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCJGmsiXPdc1EiQj57KD6hTtZLl6nE56Sdz2-RyMPta94HN3Lzihps3yr9dChFpkVqban67fTwpS_4DrUCWZOCqJHjcxrbTaW7YpMuZdUsXtuUilrMaqyoI-kBtm3vAYTMor05Hzi5Dw2c/s400/udnie.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">udnie</td></tr>
</tbody></table>
<br />
<br />
以上OpenCV 備忘録http://www.blogger.com/profile/10220249018358948739noreply@blogger.com0