機械学習/画像処理

「AI ってなんだ」

技術研究所の (あ) です。
この一年くらいで、社内外のいろいろな方々向けに眼科画像と機械学習の話をさせていただく機会がいくつかありました。長めの話をする場合には、「そもそも機械学習とか AI (人工知能) ってなぁに?」というあたりから話を始めます。

先日もそのあたりに関する話が社内報向けの Q&A形式の記事になったのですが、紙面も限られていて削った部分もありました。せっかくなのでそれをベースに、新たに内容も追加してブログ記事にしてみました。

続きを読む


CNNを用いた超解像を試しました

この記事は 『CRESCO Advent Calendar 2018』21日目の記事です。

はじめまして。ディープラーニングに取り組んでいるシニア㊥です。本日は、CNNを用いた超解像について、触れてみたいと思います。

CNNの超解像て何?

4K、8K対応のテレビ放送が12月から開始されました。ラグビー・ワールドカップや東京オリンピックを超高画質な映像でテレビ観戦できると良いですね。

さて、画像処理では超解像と呼ばれる分野があります。画像を拡大する際、ボケやジャギーといった画像の劣化が生じてしまうことがありませんか。これは、元の画像に含まれる画素を利用した補完アルゴリズを使っているからです。そこで、補完ではなく元の画像に含まれない高周波成分を推定することで解像度を向上させる手法が生まれました。これを超解像と呼びます。

そのようななか、2014年にC.Dong氏(※1)らは畳み込みニューラルネットワーク(CNN)を用いた超解像を発表しました。Super-Resolution Convolution Neural Network(SRCNN)は、入力と出力の画像再現性をend-to-endで機械学習させるものです。これを機に、CNNを使った様々な超解像のモデルが発表されています。
※1:Image Super-Resolution Using Deep Convolutional Networks

続きを読む


めざせ!『人工知能』エンジニア

こんにちは。先端技術事業部の高津です。

この記事は 『CRESCO Advent Calendar 2018』 4日目の記事です。
最近はAdvent Calendarでしか皆さんとお会いしないのがちょっと寂しいですね。
自分のせいなんですが 笑

さて、昨今巷で話題の人工知能ですが、クレスコでもサービスAIの代表ともいえるWatsonからPythonによるモデル構築まで幅広く人工知能に対応できる体制を築いています。
これまでにもいろいろなコンテンツを利用して育成を進めてきましたが、私を含めてエンジニアの皆さんが「人工知能」エンジニアになるため、最初の学習のために役立ちそうな情報を共有してみたいと思います。

続きを読む


色の見え方

技術研究所のまつけんです。

先日、JDLA (日本ディープラーニング協会) のG検定 (ジェネラリスト検定) を受けてみました。恐らく合格しているとは思うのですが、少しばかり悔いの残る結果でした。というのも、途中で自宅のインターネット環境 (固定回線) が不調になり、5分くらいロスしてしまったからです。予め、スマホでテザリングできるようにスタンバイさせていた (古いPCも予備としてスタンバイさせていた) ので、どこかの段階でそちらに切り替えようかと思っていましたが、固定回線が復旧したので、テザリングへの切り替えはせずに済みました。トラブルに備えてPCと回線は二重化しておくと安心ですね。

さて、先日の記事で(あ)がデジタル画像についての話をしました。その中で「三原色」について触れていましたが、今日は、その「三原色」について詳しく説明したいと思います。

続きを読む


深層学習で画像分類を試す(TensorFlow Keras MNIST)

PythonをPysonと書いて凄腕エンジニアが苦笑い。
ビジネスイノベーションセンター川崎です。

目次

  1. はじめに
  2. MNISTを使って深層学習を体験しよう
    -実行環境
    -MNISTとは
    -Anacondaのインストール
    -TensorFlow+Kerasのインストール
    -Jupyter Notebookを起動
    -動作確認
    -結果解説
    -まとめ
  3. 用語解説
    -機械学習と深層学習の関係
    -ニューラルネットワークとは
    -「mnist_cnn.py」は何をしていたのか
  4. おわりに

続きを読む


デジタルな画像のはなし (色と明るさ)

技術研究所の (あ) です。
機械学習による画像や写真の分類とかやってます。

学習用に集めた画像を畳み込みニューラルネットワークなどで学習させるわけですが、その際にはまず、集めた画像の要る部分だけを切り出したりする必要があります。また、「ちょっと違っても同じだよ」というようなことを学習させるために画像にフィルタを掛けたり変形したりノイズを加えたりして“Data Augmentation”を行うことも多いです。

こうした作業には、またこれに限らず写真などの解析や操作のためには計算機上でデジタルな画像がどう表現され扱われているのか、ということをちゃんと理解しておいたほうが便利です。「なんかこうすればよいらしい」くらいの認識でも、まあ、なんとかなるかもしれませんが、ちょっと知識があるだけで応用できる度合いがぜんぜん違ったりします。

というわけで今回はデジタルな画像の基礎的な部分の説明をしたいと思います。

続きを読む


感度とか特異度とか

技術研究所の(あ)です。
機械学習を用いた眼科画像からの疾患の有無の判断とかやってます。こういうもの (画像からの判断だけでなく、インフルエンザの検査とかでも同じです) の性能を評価しようとするとき、いろいろな指標の用語が出てきます。

感度、特異度、精度、再現率、適合度、などなど…

何がどう違うのでしょう? 何でたくさんあるのでしょう?
もちろん本やウェブで調べれば出てきますが、意外とすっきり簡潔に解りやすくまとめた資料がありません。いろいろな人に説明せねばならない機会も増えたし、それではということで自分で説明図などを作ってみました。

続きを読む


Pythonで動画のkeyframeのindexを取得してみた

こんにちは。技術研究所の910です。
先日弊社にて開催いたしましたオープンハウスでは、動画を活用した研究に関する発表をさせていただきました。

なので今回は動画にフォーカスを当てて、動画に含まれるkeyframeのindexの取得を試してみました。
keyframeについてはこちらの記事に分かり易くまとめてくださっています。


1. 環境、データ

  • 環境

  • データ
    検証に使わせていただいたデータは、Pixabayにて公開されているこちらの動画になります。
    こちらのファイルをFireworks – 348.mp4として使いました。

続きを読む


OpenCVを使ったロゴ認識

こんにちは。エンベデッドソリューション事業部の瀧澤と申します。

”文書などに添付されているロゴ画像が適切なフォーマット(サイズ、余白 etc)で使用されているかの確認を画像処理を使って出来ないか”、という問い合わせを社内にて受けました。

“特徴点抽出を行った画像認識を行ったらどうか”という回答をしましたが、私自身も聞きかじり程度の知識でしたので、実際に使用してみようと思い立ったのが本記事を投稿する経緯になります。

GUIベースでのテストアプリケーションを作り、考え方が正しかったか、アルゴリズムの精度はどこまで許容できるかという点で調査を行いましたので、結果を報告します。

特徴点とは

画像上における、ある法則に基づいた特徴の点群になります。(例えば画素間のエッジなど)
この”ある法則”という点において幾つかのアルゴリズムが存在します。

特徴点検出を使ったロゴ認識の流れ

  1. 検出したい画像(以下、query)と検索対象画像(以下、train)それぞれで特徴点を抽出する。
  2. query-train間で類似する特徴点を調べる。(マッチング)
  3. マッチング結果を元に画像の情報を求める。

1.、2.についてはOpenCVのAPIを使用して実現します。
3.については自前で計算を行い、結果を確認することとします。
また、3.で取り出す情報は下記の情報とします。

  • 拡縮情報
  • 回転情報
  • アスペクト比

続きを読む