LoginSignup
0
0

ncnnでColorizationを動かしてみる

Last updated at Posted at 2023-12-13

概要

ncnnで、モノクロ画像からの色推定を行う、Colorizationを動かしてみます。
Colorizationは白黒の画像を入力として、カラー化して出力する機械学習モデルです。一般的に、草は緑で、空は青く、てんとう虫は赤くなります。機械学習モデルは、これらのsemantic(意味)をベースにカラー化を行います。

Screenshot from 2023-11-19 21-18-56.png

環境構築

構築手順に入る前に、まずPCに以下のバージョンのUbuntuをインストールした環境で、構築しました。

M5UnitV2のクロスコンパイル環境を構築する手順

Ubuntu 22.04.3 LTS(x64)
OpenCV ver 0.4.4
ncnn ver 231027

ncnn-colorization-siggraph17のダウンロード

GitHubからncnn-colorization-siggraph17のコードをダウンロードします。

$ git clone https://github.com/magicse/ncnn-colorization-siggraph17
$ cd ncnn-colorization-siggraph17

学習モデルをダウンロードし、modelsフォルダに解凍します。

$ wget https://github.com/magicse/ncnn-colorization-siggraph17/releases/download/v1.0.0/models.zip
$ unzip models.zip

$ ls models
siggraph17_color_sim.bin  siggraph17_color_sim.param

CMakeLists.txt ファイルの作成

cmakeでコンパイルするために、CMakeLists.txtを編集します。

gedit CMakeLists.txt
CMakeLists.txt
SET(CMAKE_BUILD_TYPE "Release")

SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g2 -ggdb")
SET(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall")

if(TARGET_COMPILER STREQUAL "arm")
    message(STATUS "TARGET_COMPILE STREQUAL arm")
    SET(CMAKE_CXX_COMPILER arm-none-linux-gnueabihf-g++)
    SET(CMAKE_C_COMPILER arm-none-linux-gnueabihf-gcc)
    SET(NCNN_INSTALL_DIR /opt/external/ncnn/install/arm/)
    SET(ZBAR_INSTALL_DIR /opt/external/zbar-0.10/build/arm)
    SET(OpenCV_DIR /opt/external/opencv/build/arm)
else()
    message(STATUS "TARGET_COMPILE STREQUAL X64")
    SET(NCNN_INSTALL_DIR /opt/external/ncnn/install/x64/)
    SET(ZBAR_INSTALL_DIR /opt/external/zbar-0.10/build/x64/)
    SET(OpenCV_DIR /opt/external/opencv/build/x64) 
endif()


PROJECT(color_gan)
cmake_minimum_required(VERSION 3.5)

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/bin)

if(OpenCV_FOUND)
 message(OPENCV_VERSION)
 message(STATUS "OpenCV_LIBS: ${OpenCV_LIBS}")
 message(STATUS "OpenCV_INCLUDE_DIRS: ${OpenCV_INCLUDE_DIRS}")
endif(OpenCV_FOUND)

find_package(OpenCV REQUIRED)

link_directories(${OpenCV_LIBRARY_DIRS})

include_directories(${OpenCV_INCLUDE_DIRS} )
include_directories(${PROJECT_SOURCE_DIR})
include_directories(${PROJECT_SOURCE_DIR}/include)
include_directories(${NCNN_INSTALL_DIR}/include/ncnn)

add_executable(color_gan main.cpp colornet.cpp)
target_link_libraries(color_gan ${OpenCV_LIBRARIES})
target_link_libraries(color_gan ${NCNN_INSTALL_DIR}/lib/libncnn.a -fopenmp)

ビルド

Ubuntu用のプログラムをコンパイルして実行します。

$ cmake .
$ make
$ ./bin/color_gan -i test1.jpg 

プログラムの格納先

このプログラムは以下に格納しています。

参考資料

この記事を作成するにあたり、以下のウェブサイトを参考にしました。

richzhang/colorization

Colorful Image Colorization

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0