example.aligned_crop_face のソースコード

"""顔画像を検出、回転、クロップするコード例.

Summary:
    このエグザンプルコードでは、整列された(aligned)顔画像を取得する例を示します。

Args:
    path (str): 顔画像が存在するディレクトリパス
    size (int, optional): 抽出する顔画像のピクセル数を整数で指定します。デフォルトは400です。

Usage:
    .. code-block:: bash

        python3 example/aligned_crop_face.py <path> <size>

Result:
    .. image:: ../docs/img/face_alignment.png
        :scale: 50%
        :alt: face_alignment

.. code-block:: python

    # Initialize
    CONFIG: Dict = Initialize('DEFAULT', 'info').initialize()
    # Set up logger
    logger = Logger(CONFIG['log_level']).logger(__file__, CONFIG['RootDir'])

.. image:: ../assets/images/one_point_L.png
    :width: 70%
    :alt: one point

初期化とloggerのセットアップ.
FACE01を使用してコーディングするときは、'initialize'と'logger'を最初にコードします。
これにより、設定ファイルであるconfig.iniファイルを読み込み、ログレベルなどを決定します⭐️''

Image:
    `Pakutaso 笑顔でスマホ操作を教えてくれる女性の無料写真素材 <https://www.pakutaso.com/20230104005post-42856.html>`_

Source code:
    `aligned_crop_face.py <https://github.com/yKesamaru/FACE01_DEV/blob/master/example/aligned_crop_face.py>`_
"""

# Operate directory: Common to all examples
import os.path
import sys

dir: str = os.path.dirname(__file__)
parent_dir, _ = os.path.split(dir)
sys.path.append(parent_dir)

from typing import Dict

from face01lib.Initialize import Initialize
from face01lib.logger import Logger
from face01lib.utils import Utils


[ドキュメント] def main(path: str, padding: float = 0.4, size: int = 224) -> None: """ このシンプルなコード例では、png, jpg, jpegの拡張子を持つ複数のファイルが存在するディレクトリのパスをとります。 それらから顔を抽出し、位置合わせし、トリミングして保存します。 Args: path (str): Directory path where images containing faces exist padding (float): Padding around the face. Large = 0.8, Medium = 0.4, Small = 0.25. Default = 0.4 size (int, optional): Specify the number of px for the extracted face image with an integer. Default is 224px. Returns: None """ utils.align_and_resize_maintain_aspect_ratio( path, upper_limit_length=1024, padding=0.4, size=224 )
if __name__ == '__main__': # Initialize CONFIG: Dict = Initialize('DEFAULT', 'info').initialize() # Set up logger logger = Logger(CONFIG['log_level']).logger(__file__, CONFIG['RootDir']) utils = Utils(CONFIG['log_level']) args: list = sys.argv if 2 == len(args): main(args[1]) elif 3 == len(args): main(args[1], float(args[2])) elif 4 == len(args): main(args[1], float(args[2]), int(args[3])) else: print("Argument must be PATH")