機械学習/画像処理

機械学習をやろうとしたらデータクレンジングに明け暮れていた件(1) ~フォルダ・ファイル名の傾向と対策~

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

今回はデータクレンジングの話です。データクレンジングというのは、データを機械学習に流し込む前に全体的に眺めて、必要なら整形する作業です。KaggleやSIGNATEなどのコンテストではクレンジングされた状態のデータが提供されますが、実際の業務では、必ずしもそうとは限りません。そして、それはデータの中身に限った話ではありません。フォルダやファイルの名前が一定の規則に従ってない場合、それを規則的な名前にするところから始まります (規則的な名前でないとループなどで処理したりするのに不便です)。

機械学習に使う大きなデータをよそから転送する際、たいてい、DVDやアップローダなどで受け取ります。後者の場合はzipなどでアーカイブ (および圧縮) されていることが多いのですが、zipファイルが数十個ある場合もあります。今回の記事では、転送したデータを確認し、フォルダ名、ファイル名などを扱いやすい形に変換する過程について、説明します。データ数が膨大な場合を想定していますので、多くはbashスクリプトにより自動化しています。といっても、UNIX/Linuxをインストールする必要があるわけではありません。今から紹介する手法はcygwin上で行うことを想定しています (スクリプトは全てcygwinのbashで動作確認しています)。

今回は、機械学習用のデータについて、フォルダ構成を確認し、必要に応じて整形する手順を紹介したいと思います。

続きを読む

OpenCVでレシートを適切なサイズに縮小する

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

リモートワークが増えたことで、会社に領収書やレシートの写真を提出することが多くなりました。紙のレシートを、スキャナやスマホで電子化する (画像ファイルにする) と、不必要に高精細な画像になってしまうことが多いように感じます。そこで、今回は、レシートの写真を自動で、文字が判読できる範囲内で縮小する (解像度を落とす) Pythonプログラムを作成してみました。機械学習などは使わず、OpenCVとNumPyだけで画像処理によって実現しています。

続きを読む

白黒はっきりしない判定の評価のしかた 〜ROC曲線と AUC〜

技研の (あ) です。

最近すっかり医療系の話に関わることが多くなってます。疾患の有無の判定などを行う際の性能指標について、これまで「感度とか特異度とか」「F値と平均的でない平均の話 〜あるいは調和平均の使いどころ」といった記事を書きました。

今回はその続きで、ROC曲線 (ROC Curve) と AUC について説明したいと思います。ROC曲線の話に行く前に、まずは判定の結果出てくる値に関しての話からです。

続きを読む

調和平均とハーモニー、と新たな謎

[前回までのあらすじ]
実は調和平均とは算術平均の裏返しであった。分母にあたるものが同じ場合の平均を考えるのに算術平均が適切であるなら、分子にあたるものが同じ場合の平均を考えるには調和平均が適切で、分子分母が逆転している以外は同じと言っても過言ではなかったのだ…。

技研の(あ)です。前回は F値と、その計算に使われる調和平均 (Harmonic Mean) ってどういうもの? という話を書きました。ところでなんでこれって「調和」平均って言うんでしょうね?

ということで今回は前回の補足的にそのあたりの話を書きます。
(が、そこから話は意外な展開に…?)

続きを読む

F値と平均的でない平均の話 ~あるいは調和平均の使いどころ

技術研究所の(あ)です。
機械学習を使った画像分類を用いた医療系の共同研究をいろいろやったりしてます。

画像分類などの分類問題の性能評価指標って、なんかいろいろ出てくるよねー、それって何がどう違うの? ということで以前、感度とか特異度とかの話を書きました。今回はその続編ということで「F値」の話を書きます。

そしてそこで出てくる、「調和平均」って何者? という話も書きます。
(この記事はCRESCO Advent Calendar 2019最終日の記事です)

続きを読む

fasttextとWatson Natural Language Classifierの文書分類比較

テクニカルエバンジェリストの井上(祐)です。

この記事は「CRESCO Advent Calendar 2019」24日目の記事です。

文章に書かれている内容から、どのカテゴリに分類するか判断を行う文書分類は、新聞記事のカテゴリ分類(政治、経済、スポーツなど)や、身近なところでは迷惑メールフィルタでの利用があります。また業務においては、大量に発生する文書、例えば契約書、提案書、日報、作業報告書などを効率よく分類することで業務効率化を図るなど様々な利用が考えれます。今回、文書分類器としてfasttext、Watson Natural Language Classifierを対象に分類精度、速度、費用について比較を行います。

続きを読む

AIマイコン MAiXDUiNOを試してみた

テクニカルエバンジェリストの井上(祐)です。

最近、気になっているエッジコンピューティング。クラウドのパワフルな環境ではなく、データの発生源に近いエッジ側でデータをリアルタイムに処理しその場で推論を行なったり、ある程度処理をしたらクラウドにデータを渡したり、このエッジで動かすAIに注目が集まっています。例えば、動画から何かを識別する際、ダラダラと動画データをクラウドに送り込んでAIに処理させるのは、通信の負荷を考えると現実的ではありません。やはりエッジ側のAIで認識し、結果をクラウドに送るのが良さそうです。ちなみに、このようなエッジコンピューティングはAIoTと呼ばれています。本記事では、そのひとつMAiXDUiNOを試したという内容となります。

続きを読む

深層学習による顔認識

あらまし

顔認識を実際に動かしながら試すことで顔認識がどういうものかを体験します。
実装に使ったのはdlibの畳み込みニューラルネットワークベースの認識器です

顔認識の必要性

顔認識の必要性については今や説明するまでもないほど身近なものになっていると思います。
監視カメラにおいては顔だけではなく、他の特徴も含めて利用し複数台のカメラの画像を高速に処理できる時代が到来しています。
例えば渋谷で発生した事件ではスマートフォンの画像から犯人を突き止めたようです。
今回は顔認識の精度を大幅に向上させた深層学習ベースの手法を試したいと思います。

 

 

続きを読む

「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

続きを読む