人工知能テクノロジーの発展が進むにつれて、ターゲット検出システムはコンピュータービジョンの分野で非常に重要な役割を果たしています。この種のシステムは、画像やビデオから主要なオブジェクトを自動的に識別し、ターゲットを追跡および分析できます。この記事では、Java を使用して人工知能ベースの物体検出システムを作成する方法を紹介します。
まず、Java と OpenCV をインストールする必要があります。 Java は、Java を使用してターゲット検出システムを作成するためのプログラミング言語であり、OpenCV は、画像を処理および分析するための実用的な API とツールを多数提供するコンピューター ビジョン ライブラリです。次の手順で Java と OpenCV をインストールして構成できます。
1.1 Java JDK のインストール
Java JDK は公式 Web サイトからダウンロードできます。インストールが完了したら、JAVA_HOME および PATH 環境変数を設定する必要があります。 Windows システムでは、次の内容を環境変数に追加できます。
変数名: JAVA_HOME
変数値: C:Program FilesJavajdk1.8.0_45
変数名: PATH
変数値: %JAVA_HOME% in
1.2 OpenCVのインストール
OpenCVは公式サイトからダウンロードできます。ダウンロードが完了したら、ファイルを解凍し、プロジェクトの作業ディレクトリにコピーします。次に、フォルダー内の opencv-3.4.3.jar ファイルをプロジェクトの lib フォルダーにコピーします。最後に、フォルダー内のサードパーティのローカル ライブラリ フォルダー opencv uildjavad (Windows の場合) または opencv uildjavalib (Linux の場合) をシステムのパス環境変数に追加します。
Java と OpenCV のインストールと構成が完了したら、ターゲット検出システムの構築を開始できます。まず、イメージをロードし、いくつかの基本的な操作を実行する必要があります。これらの操作を実現するには、次のコードを使用します。
public static void main(String[] args) { // 载入图像 Mat image = Imgcodecs.imread("test.jpg"); // 缩放图像 Size size = new Size(800,600); Imgproc.resize(image,image,size); // 转换为灰度图像 Mat grayImage = new Mat(); Imgproc.cvtColor(image,grayImage,Imgproc.COLOR_BGR2GRAY); // 模糊处理 Imgproc.GaussianBlur(grayImage,grayImage,new Size(3,3),0); // 边缘检测 Mat edges = new Mat(); Imgproc.Canny(grayImage,edges,50,150); // 显示图像 HighGui.imshow("Test",edges); HighGui.waitKey(0); System.exit(0); }
このコードでは、最初に Imgcodecs.imread() 関数を使用して、ローカル ファイル システムからイメージを読み込みます。次に、Imgproc.resize() 関数を使用して、画像を 800×600 の寸法に拡大縮小します。次に、Imgproc.cvtColor() 関数を使用して画像をグレースケールに変換します。次に、Imgproc.GaussianBlur() 関数を使用してグレースケール イメージをぼかし、ノイズと干渉を軽減します。最後に、後続のターゲット検出のためのエッジ検出に Imgproc.Canny() 関数を使用します。
基本的な画像処理の後、ターゲット検出を開始できます。この機能を実現するには、まず適切なターゲット検出アルゴリズムを選択する必要があります。この記事では、OpenCV ベースの Haar 特徴分類器をオブジェクト検出に使用します。
3.1 適切な Haar 分類器の選択
Haar 分類器は古典的なターゲット検出アルゴリズムであり、その基本的な考え方は、オブジェクトの形態学的特徴を観察することによってオブジェクトを識別することです。具体的には、ハール分類器は、ターゲット領域内のグレー値の差を計算することによって得られる内部特徴値を使用してターゲットを表現します。対象物の形態的特徴が特徴量の集合で表現できれば、それらの特徴量を比較することで画像内に対象物が存在するかどうかを判定することができる。
この記事では、OpenCV が提供するトレーニング済みの Haar 特徴分類器をターゲット検出に使用します。これらの分類器にはすでに多数の正および負のサンプルが含まれており、バックプロパゲーションを通じてトレーニングできます。
3.2 Haar 分類器のトレーニング
人工知能ターゲット検出を開始するには、OpenCV の組み込みトレーニング ツールを使用して Haar 分類器をトレーニングする必要があります。トレーニング プロセスには、ポジティブおよびネガティブのサンプル画像のセットが必要です。通常、サンプル画像が多いほど、効果は高くなります。
3.3 ターゲット検出
上記の手順により、Haar 分類器のトレーニングが完了し、ターゲット検出に使用できるようになりました。 Java では、次のコードを使用して Haar 分類子のターゲット検出を実装できます。
public static void main(String[] args) { // 载入图像 Mat image = Imgcodecs.imread("test.jpg"); // 装载分类器 CascadeClassifier detector = new CascadeClassifier("classifier.xml"); MatOfRect targets = new MatOfRect(); // 检测目标 detector.detectMultiScale(image,targets); // 在图像上标示目标 for(Rect rect: targets.toArray()){ Imgproc.rectangle(image,rect.tl(),rect.br(),new Scalar(0,0,255),2); } // 显示图像 HighGui.imshow("Test",image); HighGui.waitKey(0); System.exit(0); }
このコードでは、最初に Imgcodecs.imread() 関数を使用して、ローカル ファイル システムからイメージを読み込みます。次に、CascadeClassifier クラスを使用して分類子オブジェクトを構築し、それを使用して画像を検出します。検出結果は、MatOfRect 型のオブジェクトに保存されます。最後に、Imgproc.rectangle() 関数を使用して画像上のターゲットをマークし、HighGui.imshow() 関数を使用して検出結果を表示します。
この記事では、Java を使用して人工知能ベースのターゲット検出システムを作成する方法を紹介しました。最初に Java と OpenCV のインストールと構成を紹介し、次にいくつかの基本的な画像処理機能を示し、最後に Haar 特徴分類器を使用したオブジェクト検出を実装しました。この知識とスキルの基盤により、読者は、進化する人工知能時代によりよく適応するために、YOLO、RCNN などのターゲット検出システムにおけるより詳細で高度なアプリケーションとテクノロジをさらに学び、探索することができます。
以上がJava を使用して人工知能ベースの目標検出システムを作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。