Avec le développement croissant de la technologie de l'intelligence artificielle, les systèmes de détection de cibles jouent un rôle extrêmement important dans le domaine de la vision par ordinateur. Ce type de système peut identifier automatiquement les objets clés à partir d’images ou de vidéos pour suivre et analyser les cibles. Dans cet article, nous présenterons comment écrire un système de détection d'objets basé sur l'intelligence artificielle à l'aide de Java.
Tout d'abord, nous devons installer Java et OpenCV. Java est un langage de programmation permettant d'écrire des systèmes de détection de cibles à l'aide de Java, et OpenCV est une bibliothèque de vision par ordinateur qui fournit de nombreuses API et outils pratiques pour traiter et analyser des images. Nous pouvons installer et configurer Java et OpenCV en suivant les étapes suivantes :
1.1 Installer Java JDK
Java JDK peut être téléchargé depuis le site officiel. Une fois l'installation terminée, vous devez définir les variables d'environnement JAVA_HOME et PATH. Dans les systèmes Windows, vous pouvez ajouter le contenu suivant aux variables d'environnement :
Nom de la variable : JAVA_HOME
Valeur de la variable : C:Program FilesJavajdk1.8.0_45
# 🎜 🎜#Nom de la variable : PATHValeur de la variable : %JAVA_HOME% dans1.2 Installer OpenCVOpenCV peut être téléchargé depuis le site officiel. Une fois le téléchargement terminé, décompressez le fichier et copiez-le dans le répertoire de travail de votre projet. Copiez ensuite le fichier opencv-3.4.3.jar du dossier dans le dossier lib du projet. Enfin, ajoutez le dossier de la bibliothèque locale tierce opencv uildjavad (sous Windows) ou opencv uildjavalib (sous Linux) dans le dossier de la variable d'environnement path du système.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); }Dans ce code, nous utilisons d'abord la fonction Imgcodecs.imread() pour charger l'image depuis le système de fichiers local. Ensuite, nous utilisons la fonction Imgproc.resize() pour redimensionner l'image aux dimensions 800×600. Ensuite, nous convertissons l'image en niveaux de gris à l'aide de la fonction Imgproc.cvtColor(). Ensuite, nous utilisons la fonction Imgproc.GaussianBlur() pour flouter l'image en niveaux de gris afin de réduire le bruit et les interférences. Enfin, nous utilisons la fonction Imgproc.Canny() pour la détection des contours pour la détection ultérieure de la cible.
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); }Dans ce code, nous utilisons d'abord la fonction Imgcodecs.imread() pour charger l'image depuis le fichier local système. Nous construisons ensuite un objet classificateur à l'aide de la classe CascadeClassifier et l'utilisons pour détecter l'image. Les résultats de la détection sont stockés dans un objet de type MatOfRect. Enfin, nous utilisons la fonction Imgproc.rectangle() pour marquer la cible sur l'image, et utilisons la fonction HighGui.imshow() pour afficher les résultats de détection.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!