情報詳細Q: HALCONで、convert_image_typeを使用してbyte画像からuint2やrealなど他の型へ変換すると画像の見た目が変わるのはなぜですか?HALCONで、preprocess_dl_samples, preprocess_dl_model_images, transform_dl_sample_batch 等のディープラーニング系の前処理を行うと画像の見た目が変わるのはなぜですか?Deep Learning Tool の判定タブで、「前処理済み」を選択すると見た目が変わるのはなぜですか? A: これらの変換前後で見た目が変わることについては、HALCONの表示関連の仕様によるものです。byte画像では、0-255の輝度値をそのままディスプレイのRGB値として割り当てを行います。byte画像以外の場合、その画像に格納されている最小-最大輝度値をディスプレイRGBの0-255に割り当てて表示を行います。そのため、入力画像が0-255であれば見た目は変わりませんが、100-150のような輝度値の画像であった場合、見た目が大きく変わります。見た目は変わっていても、convert_image_type単体では輝度値そのものは (変換先画像の輝度上下限に触れていない限りは) 変更されていません。HALCONにおけるディープラーニング系の前処理、およびDeep Learning Tool (DLT) における「前処理済み」のトグルボタンも同様の理由です。ディープラーニングのモデルに投入するために行われる前処理は次のようなものです。 パラメータで指定した画像サイズとチャンネル数に整える画像をreal型へ変換する (convert_image_type)輝度値をモデルが要求する範囲へ正規化する (通常、元のbyte画像の輝度範囲 0-255 に対し -127~+128 または ±1) ここで、convert_image_typeを使用するため、見た目が変わります。DLTの場合は輝度値の正規化も同時に行われていますが、基本的には階調情報を失う操作ではないため、HALCONと同様に見た目上の問題といえます。HALCONで、ディープラーニング関連の前処理画像を取り扱う場合、次のように輝度の上下範囲を指定することで見た目上も階調を維持することができます。 dev_set_lut (['linear', -127, 128]) //HDevelop set_lut (WindowHandle, ['linear', -127, 128]) //HDevelop以外添付ファイルタイトルconvert_image_typeを使用すると画像の見た目が変わる / Deep Learning Toolで「前処理済み」を選択すると見た目が変わるURL 名000011067公開状況公開済み検証状況未検証