画像解析

kaggle1位の解析手法 「Cdiscountの画像分類チャレンジ」1コンペの概要

今回のkaggle1位の解析手法のシリーズはKaggleでよく行われる画像分類コンペについて話したいと思います。過去のコンペの「Cdiscountの画像分類チャレンジ」の解析方法を解説します。最初の記事はCdiscountのコンペ概要とデータ理解を紹介します。 目次 1.  「Cdiscountの画像分類チャレンジ」のコンペの概要 ___1.1 コンペの概要 ___1.2 データセットの概要 ___1.3 データの理解 2.  1位の解説の環境準備とデータ処理 ___2.1 特徴量生成 ___2.2 解析方法のサマリー ___2.3 大きなデータセットの準備 3.  1位のモデルの解説 ___3.1 学習済みモデルの調整 ___3.2複数枚の画像データセットを利用 ___3.3 OCRデータの追加 ___3.4そのたの方法 ___3.5 restnetモデルのコード 1.  「Cdiscountの画像分類チャレンジ」のコンペの概要 1.1 コンペの概要 Cdiscountは1999年に設立され、2011年にはフランスで最大のeコマースプラットフォームとなりました。Cdiscountは生鮮食品の販売だけでなく、電気製品、衣料、家庭用品などのすべてのカテゴリを取り揃えています。このコンペは製品の画像をカテゴリ分類するアルゴリズムを作成したいです。 データセットの特徴: ・一つの製品は複数画像がある ・ほぼ900万の製品:現在のカタログの半分 ・180×180の解像度で1500万枚以上の画像 ・5000以上のカテゴリ 目的: このコンペの目的は、画像に基づいて製品のカテゴリを予測することです。 製品には、1つまたは複数の画像があります。 テストセットのすべての製品IDを正しいカテゴリを予測することです。 メトリック Accuracy(正しい製品の割合)で評価されます。 賞金: 1位20,000米ドル、2位10,000米ドル、3位5,000米ドル 期間: 2018/09/14 ~ 2018/12/14 参加チーム数:626 1.2 データセットの概要 BSON拡張子ファイル BSON拡張子はBinary JSONで、主にMongoDBのデータストレージ及びネットワーク転送フォーマットとして利用されている、データ交換フォーマットである。 train.bson …

kaggle1位の解析手法 「Cdiscountの画像分類チャレンジ」1コンペの概要 Read More »

ハフ変換とLSDによる直線検出の比較

関連記事: 画像解析 前回の記事は「OpenCV + Pythonでの直線検出」を解説しました。今回はPythonでハフ変換(Hough)とLSDによる直線検出を比較します。 目次 1. ハフ変換(Hough Transform) 2. LSD (Line Segment Detector) 3. ハフとLSDの比較 4. 実験・コード __4.1 データロード __4.2 ライブラリのインストール __4.3. 直線検出 __4.4. 結果比較 1. ハフ変換とは ハフ変換 (Hough変換) は、画像処理で画像の特徴抽出法の一つです。現在広く用いられている変換法はRichard Duda及びPeter Hartが1972年に発明しました。ハフ変換の基本原理は点を通る直線は無限個存在し、それぞれが様々な方向を向きます。ハフ変換の目的は、それらの直線の中で、画像の「特徴点」を最も多く通るものを決定します。 直線の式は次のようになる: ハフ変換では画像空間からρ-θパラメータ空間への変換を行います。ある画像空間上に孤立点があり、点の座標が(x, y)である場合、パラメータ空間への変換を行うとどのような結果が得られるのか、考えることにします。 ρ : 座標(x, y)を通る直線に対し、原点から垂線を下ろしたときの長さ θ : 座標(x, y)を通る直線に対し、原点から垂線を下ろしたときにx軸となす角度 論文:Use of the Hough Transformation To. Detect Lines and Curves in Pictures …

ハフ変換とLSDによる直線検出の比較 Read More »

Python-OpenCVでのRGBからHSVに変換

画像解析一覧 画像解析では、画像の色空間を変換することは一般的な操作になります。OpenCVは150種類以上の色空間の変換を用意しているが,その中で最も広く使われている変換方法は、BGR からGrayに変換とBGRから HSVに変換であります。今回の記事はBGRから HSVに変換する方法を解説します。 目次 1. 色空間とは 1.1 RGB色空間モデル 1.2 HSV色空間モデル 2. RGBからHSVに変換の換算式 3. PythonのOpenCVコード:RGBからHSVに変換 3.1データロード 3.2 RGBの画像を可視化 3.3 HSVに変換 3.4 HSVの画像を可視化 1. 色空間とは 色空間(カラースペース)とは色を定量的に表現方法です。代表的な色空間にはRGBがあるが、これは、赤(Red)、緑(Green)、青(Blue)の光の3原色を利用した色空間であり、コンピュータのモニタへの出力や、アプリケーション上の色設定などでよく用いられます。他には、テレビで用いられているYCbCr/YPbPr、印刷分野で主流であるCMYKやDICなどがあります。 1.1 RGB色空間モデル コンピュータやテレビの映像表示に使われるディスプレイでは、色を区別する方法として RGB モデル(RGB model)が広く使われています。それに合わせて、Webサイトを制作する際に色を指定する場合にも RGB にもとづく色表記が使われます。赤(red)、緑(green)、青(blue)の 3 つであり、これらを総称して原色(primary colors)と呼びます。それぞれの要素の明度を最小の 0 から最大の 255 の間に置きます。すべての原色が混ざると白(white)になります。他方で、すべての原色が欠けると黒(black)になります。 1.2 HSV色空間モデル HSV モデル(HSV model)とは、色相(hue)・明度(lightness)・彩度(saturation)の 3 つの基準から色を分類するモデルです。HSV モデルにおいて使われる 3 つの基準を総称して色の三属性(three attributes of color)と呼びます。HSV モデルは人間が色を知覚する方法と似ていることからデザイナーの間で広く使われています。 …

Python-OpenCVでのRGBからHSVに変換 Read More »

OpenCV + Pythonでの色認識・色検出

前回の記事は OpenCVで画像の図形検出と直線検出について説明しました。 「OpenCV + Pythonでの図形検出、図形数える」 「OpenCV + Pythonでの直線検出」 今回の記事は画像解析についてOpenCVで画像から色認識し、色検出を説明します。 OpenCVライブラリのInRangeはビデオ、画像の色範囲を認識する機能です。下界と上界を設定すれば、対象の色を検出ができます。InRangeのクラスは下記に説明します。 InRange InRange(src, lower, upper, dst) パラメタ: src (CvArr) – 入力画像 lower (CvArr) – 下界(その値を含む)を表す配列 upper (CvArr) – 上界(その値は含まない)を表す配列 dst (CvArr) – 出力画像 (引数経由で受け取る場合) この関数は,入力配列の要素毎に範囲チェックを行います。

Mnistで深層学習入門 活性化関数 時間/精度比較

最近、ニュースや記事でよく目にする、耳にする“ ディープラーニング(Deep Learning) ” 。ディープラーニングに興味ある方が多方面に増えてきている一方で、Deep Learningについて知りたいけれども、実際よくわからないと感じている方も多く見受けられます。この記事はディープラーニングについて説明します。過去に紹介してきたクラスタリングや回帰分析とは異なります。 ディープラーニングとは ディープラーニング(deep learning)または深層学習とは、人間の脳神経回路を模したニューラルネットワークを多層的にすることで、コンピューター自らがデータに含まれる潜在的な特徴をとらえ、より正確で効率的な判断を実現させる技術や手法です。 具体的な例は、世界囲碁トップレベルに勝利した人工知能の囲碁プログラム「AlphaGo」のアルゴリズムはディープラーニングです。 「機械学習」と「ディープラーニング」の違いとは? ディープラーニングは機械学習をさらに発展させたものだ。従来の機械学習との大きな違いは、情報やデータを分析する際に使う枠組みが異なっていること。構成、データ量、コンピューティングソースなどの異は下記の表にまとめました。 実験 ディープラーニングを実験すると思っていたところ、kerasでmnistのデータを画像分類します。 Kerasは,Pythonで書かれた,TensorFlowまたはCNTK,Theano上で実行可能な高水準のニューラルネットワークライブラリです. Kerasは,コードが書きやすく、迅速な実験を可能にすることに重点を置いて開発されました. アイデアから結果を得るまでの時間を早くする事で試行錯誤をしやすいというメリットがあります。 mnistのデータ 28×28ピクセル、白黒画像の 手書き数字 のデータセットになります。各ピクセルは0(白)~255(黒)の値をとる。6万枚の学習用画像と1万枚のテスト画像が入っています。今回は活性化関数を変えながら精度と時間比較をしてみます。 https://keras.io/ja/datasets/#mnist 実行環境 Python3.6 Anaconda 5.2.0 Jupyter Notebook5.6.0 Python ライブラリー Tensoflow 1.10.0 Keras 2.2.2 Sklearn 0.19.1 mnist_kerasのPython import numpy as np import tensorflow as tf from keras.models import Sequential from keras.layers.core import Dense, Activation from keras.optimizers import …

Mnistで深層学習入門 活性化関数 時間/精度比較 Read More »