概要: 顔認識を実現するための 1 行のコード、1. まず、システムに認識させたいすべての人の写真が入ったフォルダーを用意する必要があります。それぞれの人物に 1 枚の写真があり、写真にはその人の名前が付けられています。 2. 次に、識別する画像を含む別のフォルダーを準備する必要があります。 3. 次に、準備した 2 つのフォルダーをパラメーターとして渡して face_recognition コマンドを実行すると、認識する画像に写っている人物が返されます。コードは 1 行で十分です。 ! !
環境要件:
環境設定:1. Ubuntu 17.10をインストールする > インストール手順はこちら2. Python 2.7.14 をインストールします (Ubuntu 17.10 のデフォルトの Python バージョンは 2.7.14 です)3. git、cmake、python-pipをインストールする# gitをインストールする $ sudo apt-get install -y git # cmakeをインストールする $ sudo apt-get install -y cmake # python-pip をインストールする $ sudo apt-get install -y python-pip 4. dlibをインストールしてコンパイルするface_recognitionをインストールする前に、dlibをインストールしてコンパイルする必要があります。 # dlib をコンパイルする前に boost をインストールします $ sudo apt-get で libboost-all-dev をインストールします # dlibのコンパイルを開始 # dlib ソースコードをクローンする $ git clone https://github.com/davisking/dlib.git $ cd dlib $ mkdir ビルド $ cd ビルド $ cmake .. -DDLIB_USE_CUDA=0 -DUSE_AVX_INSTRUCTIONS=1 $ cmake --build . (真ん中にスペースがあることに注意してください) $ cd .. $ python setup.py インストール --yes USE_AVX_INSTRUCTIONS --no DLIB_USE_CUDA 5. 顔認識をインストールする# 顔認識をインストールする $ pip 顔認識をインストール # face_recognitionのインストール中に、numpy、scipyなどが自動的にインストールされます
顔認識の実装:例 1 (顔認識を実装する 1 行のコード):1. まず、システムに認識させたいすべての人の写真が入ったフォルダーを用意する必要があります。それぞれの人物に 1 枚の写真があり、写真には人物の名前が付けられています。
2. 次に、識別する画像を含む別のフォルダーを準備する必要があります。
3. 次に、準備した 2 つのフォルダーをパラメーターとして渡して face_recognition コマンドを実行すると、認識する画像に写っている人物が返されます。
例 2 (写真内のすべての顔を認識して表示する):# ファイル名: find_faces_in_picture.py # -*- コーディング: utf-8 -*- # pilモジュールをインポートします。これはapt-get install python-Imagingコマンドを使用してインストールできます。 PIL インポート画像から # face_recognitionモジュールをインポートします。これは、pip install face_recognitionコマンドを使用してインストールできます。 顔認識をインポートする # jpg ファイルを numpy 配列に読み込みます image = face_recognition.load_image_file("/opt/face/unknown_pic/all_star.jpg") # デフォルトの HOG モデルを使用して画像内のすべての顔を検出します # この方法は非常に正確ですが、GPU アクセラレーションを使用しないため、CNN モデルほど正確ではありません # 参照: find_faces_in_picture_cnn.py face_locations = face_recognition.face_locations(画像) # CNN モデルの使用# face_locations = face_recognition.face_locations(image, number_of_times_to_upsample=0, model="cnn") # 印刷: 写真に何人の顔が見つかりましたか print("この写真に {} 人の顔が見つかりました。".format(len(face_locations))) # face_locations 内の face_location で見つかったすべての面をループします。 # 各面の位置情報を出力する top, right, bottom, left = face_location print("顔はピクセル位置にあります。上: {}、左: {}、下: {}、右: {}".format(top, left, bottom, right)) # 顔の位置情報を指定して顔画像を表示します face_image = image[top:bottom, left:right] pil_image = Image.fromarray(face_image) pil_image.show()
# Pythonファイルを実行する $ python find_faces_in_picture.py
例3(顔の特徴を自動的に識別する):# ファイル名: find_facial_features_in_picture.py # -*- コーディング: utf-8 -*- # pilモジュールをインポートします。これはapt-get install python-Imagingコマンドを使用してインストールできます。 PIL から Image、ImageDraw をインポートします # face_recognitionモジュールをインポートします。これは、pip install face_recognitionコマンドを使用してインストールできます。 顔認識をインポートする # jpg ファイルを numpy 配列に読み込みます image = face_recognition.load_image_file("biden.jpg") # 画像内のすべての顔の顔のランドマークをすべて見つける face_landmarks_list = face_recognition.face_landmarks(image) print("この写真には {} 人の顔が見つかりました。".format(len(face_landmarks_list))) face_landmarks_list 内の face_landmarks の場合: # この画像の各顔の特徴の位置を印刷します facial_features = [ '顎'、 '左眉', '右眉', 'ノーズブリッジ', '鼻先', '左目', '右目', '上唇', '下唇' ] facial_features 内の facial_feature の場合: print("この面の {} には次のポイントがあります: {}".format(facial_feature, face_landmarks[facial_feature])) # それぞれの顔の特徴を画像で表現してみましょう! pil_image = Image.fromarray(画像) d = ImageDraw.Draw(pil_image) facial_features 内の facial_feature の場合: d.line(顔のランドマーク[顔の特徴], 幅=5) pil_image.show()
例4(人物の顔の識別):# ファイル名: recognize_faces_in_pictures.py # -*- 含む: utf-8 -*- # face_recognitionモジュールをインポートします。これは、pip install face_recognitionコマンドを使用してインストールできます。 顔認識をインポートする # jpg ファイルを numpy 配列に読み込みます babe_image = face_recognition.load_image_file("/opt/face/known_people/babe.jpeg") Rong_zhu_er_image = face_recognition.load_image_file("/opt/face/known_people/Rong zhu er.jpg") 不明な画像 = face_recognition.load_image_file("/opt/face/unknown_pic/babe2.jpg") #各画像ファイル内の各顔の顔エンコーディングを取得します。#各画像には複数の顔がある可能性があるため、エンコーディングのリストが返されます。 # ただし、画像ごとに顔が 1 つしかないことはわかっているので、各画像の最初のエンコーディングのみを気にし、インデックス 0 を取得します。 babe_face_encoding = face_recognition.face_encodings(babe_image)[0] Rong_zhu_er_face_encoding = 顔認識.face_encodings(Rong_zhu_er_image)[0] 不明な顔エンコーディング = face_recognition.face_encodings(不明な画像)[0] 既知の顔 = [ ベイブフェイスエンコーディング、 Rong_zhu_er の顔エンコーディング ] # 結果は True/False の配列で、未知の顔が known_faces 配列内の人物のいずれかと一致するかどうかを示します。results = face_recognition.compare_faces(known_faces, unknown_face_encoding) print("この知らない顔はベイブですか? {}".format(results[0])) print("この知られざる顔はジョイ・ヨンでしょうか? {}".format(results[1])) print("この未知の顔は、これまで見たことのない新しい顔でしょうか? {}".format(結果では True ではありません))
例5(顔の特徴を認識して顔を美しくする):# ファイル名: digital_makeup.py # -*- コーディング: utf-8 -*- # pilモジュールをインポートします。これはapt-get install python-Imagingコマンドを使用してインストールできます。 PIL から Image、ImageDraw をインポートします # face_recognitionモジュールをインポートします。これは、pip install face_recognitionコマンドを使用してインストールできます。 顔認識をインポートする # jpg ファイルを numpy 配列に読み込みます image = face_recognition.load_image_file("biden.jpg") # 画像内のすべての顔の顔のランドマークをすべて見つける face_landmarks_list = face_recognition.face_landmarks(image) face_landmarks_list 内の face_landmarks の場合: pil_image = Image.fromarray(画像) d = ImageDraw.Draw(pil_image, 'RGBA') # 眉毛を悪夢にする d.polygon(face_landmarks['left_eyebrow'], fill=(68, 54, 39, 128)) d.polygon(face_landmarks['right_eyebrow'], 塗りつぶし=(68, 54, 39, 128)) d.line(face_landmarks['left_eyebrow'], 塗りつぶし=(68, 54, 39, 150), 幅=5) d.line(face_landmarks['right_eyebrow'], 塗りつぶし=(68, 54, 39, 150), 幅=5) # 光沢のある唇 d.polygon(face_landmarks['top_lip'], fill=(150, 0, 0, 128)) d.polygon(face_landmarks['bottom_lip'], 塗りつぶし=(150, 0, 0, 128)) d.line(face_landmarks['top_lip'], 塗りつぶし=(150, 0, 0, 64), 幅=8) d.line(face_landmarks['bottom_lip'], 塗りつぶし=(150, 0, 0, 64), 幅=8) # 光る目 d.polygon(face_landmarks['left_eye'], fill=(255, 255, 255, 30)) d.polygon(face_landmarks['right_eye'], 塗りつぶし=(255, 255, 255, 30)) # アイライナーを追加します d.line(face_landmarks['left_eye'] + [face_landmarks['left_eye'][0]], fill=(0, 0, 0, 110), width=6) d.line(face_landmarks['right_eye'] + [face_landmarks['right_eye'][0]], 塗りつぶし=(0, 0, 0, 110), 幅=6) pil_image.show() |
この記事は、Heart of Autonomous Driving の公開アカウントから許可を得て転...
人工知能の出現により、ソフトウェア開発の継続的な発展が加速しています。この強力なテクノロジーは、ソフ...
触覚は人間が相互作用を調整する主な方法の 1 つです。触覚を通じて知覚される触覚は、人間が物体の大き...
AIが私たちの日常生活の一部になっていることは否定できません。ほぼすべての業界のフォーチュン 100...
Kompprise が委託した「非構造化データ管理の現状」調査によると、人工知能は IT およびビジ...
普遍的なグラフモデルはありますか?分子構造に基づいて毒性を予測するだけでなく、ソーシャル ネットワー...
音声とテキストの両方における自然言語処理 (NLP) の改善は、主流のテクノロジーの進歩に役立ちます...
家族、Tik TokのAI拡大画像に本当に笑い死にしそう——観た後に「意外」で「すごく怒る」というの...
この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...
I. はじめに1. まず話をしましょう約4〜5年前、私はカーネギーメロン大学(CMU)の博士課程の...
[[348166]]導入2020年は世界にとって激動の年です。経済状況は流行病の影響を受けており、不...
上海市は7月に「史上最も厳しいゴミ分別措置」を実施し始めて以来、ゴミ分別は多くの人々の日常生活におけ...
機械学習と産業用 IoT (IIoT) デバイスから収集されたデータを組み合わせることで、プロセスの...