インントロダクション
画像解析処理を行いたく思い「OpenCV」をセットアップします。
brewコマンドでインストールなどもできる様ですが、GitでPULLするのが一番早いと思いましたので、そのようにやります。
そもそも。。。
機械学習の理解をしようと色々と試みましたが、撃沈。。。(TensorFlow関連では基本的なこと、モデルの作成の理論までは理解できなかった)ので、OpenCVで機械学習を学ぼうとなりました。
OpenCVには色々な「アルゴリズムを使」うとか、ベクトル、パターン認識、特徴量の計算など「機械学習で必要になるであろう」事が記載されていました。
必要な工程
- Eclipseのインストールなどのセットアップ
- OpenCVのインストール(ここから記載します)
- OpenCVのJARファイルとOpenCVのC言語資源(ソース) インストール
- OpenCVの起動確認
OpenCVのインストール(makeコマンドを使う)
コマンドを叩いていけばOKですので。。。
参考サイト :本家家元OpenCVのページです。
参考サイト2:JavaでのOpenCVのページ。Javaでやるのでこちらを参照。
以下のコマンドを実行します(gitはインストール済みの場合)
>git clone git://github.com/opencv/opencv.git
gitのインストール:このページを参照しました。
>brew install git
そして以下のコマンドと続きます(対象のバージョンは「3.4.3」
>cd opencv >checkout 3.4.3 >mkdir build >cd build >cmake -DBUILD_SHARED_LIBS=OFF ..
そして処理が流れ始め。。。
javaフォルダができたかな?と思いきや。。。「ない」
そんな時は下のコマンドを叩く様です。
>export JAVA_HOME=/usr/lib/jvm/java-6-oracle >cmake -DBUILD_SHARED_LIBS=OFF ..
「/usr/lib/jvm/java-6-oracle」の部分は自分のマシンで使用するJDKの場所を指定します。自分の場合は以下の様になります。
>export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/
>cmake -DBUILD_SHARED_LIBS=OFF ..
>make -8j
そして、ビルドの結果
javaフォルダがない。。。
と思ったらopencv/binの中にありました。
そんなわけで、以下のコマンドでファイルをビルドパスに繋げやすい様にファイルを移動します。
>cp ./bin/opencv-343.jar ~/Java/OpenCv/ >cp ./lib/libopencv_java343.dylib ~/Java/OpenCv/
リンク先のファイルが「libopencv_java343.dylib」とは違う様ですが、このファイルで良い様です。
Eclipseのプロジェクトを右クリック > Build Pathを選択
Native Libraryを選択して。。。
Native libraryにOpenCVを登録(設定)します。
そして、実行!撃破!!
ソースは下の様になりました。対象のライブラリ部品から定数で参照する値は名前が違う場合がある様です。。。なのでハードコーディング(笑)
import org.opencv.core.CvType; import org.opencv.core.Mat; /** * OpenCVの部品を実行するクラス。 * * @author takunoji * * 2018/11/11 */ public class ReceiptCv { static { System.loadLibrary("opencv_java343"); } public static void main(String[] args) { new ReceiptCv().helloCv(); } public void helloCv() { Mat m = Mat.eye(3, 3, CvType.CV_8UC1); System.out.println("m = " + m.dump()); } }
そしてImShow(画像表示)→OpenCV3.Xではできません。
OpenCVの3.XからはHightGUIを使用しないようです。なのでJavaFXでイメージの表示を行います。「Java OpenCv Hello in Java〜OpenCv事始め〜」
旧バージョンでのImShowメソッドの使用方法
JARファイルをGitから直接ダウンロードします。
Imshow.jarを直接ダウンロードします。
Downloadボタンをクリックしてダウンロードします。
BuildPathをJARファイルに通します。
プロジェクトを右クリック > BuildPath
「Add External Jar」でダウンロードしたファイルを追加します。
実際の作業
https://www.youtube.com/watch?v=ZlTZDoYCAS8
次は、画像の表示をするための準備を行います。
ImShowのメソッドが使えないのでJavaFXによる画像表示GUIを作成していきます。
参考サイトはこちらです。
ちなみにチュートリアルでは「シーンビルダー」をインストールして画面の土台を作っています、下のような感じです。
関連ページ一覧
<JavaFXの準備>
<TensorFlow関連>
- Tensorflow Keras 〜初めてのKeras〜
- Tensorflow Keras Errors〜”python is not installed as a framework.”〜
- Python Tensorflow 〜初めての人工知能(TensorFlowインストール)〜
- Tensorflow Keras〜初めのトレーニング_1〜
- Tensorflow Keras〜初めのトレーニング_2:前処理〜
- TensorFlow Keras〜テキストの分類〜
- Python TensorFlow tutorial〜チュートリアルを進めるコツ、ワンポイント〜
- TensorFlow Keras〜回帰、準備から予測まで〜
- TensorFlow Java 環境構築〜JavaでもTensorFlow〜