[統計とデータサイエンスからクロスポスト]
ビデオフィードから抽出されたデータを使用して、動物の分類問題に取り組んでいます。録音はペンで行われたため、暗い背景と多くの影で問題は非常に困難です。
最初は scikit-image を試しましたが、画像内のオブジェクトのセグメント化とラベル付けに優れた機能を果たす crf-rnn ( http://crfasrnn.torr.vision/ ) という高度なツールを誰かが手伝ってくれました。私は次のことをしました:
import caffe
net = caffe.Segmenter(MODEL_FILE, PRETRAINED)
IMAGE_FILE = '0045_crop2.png'
input_image = caffe.io.load_image(IMAGE_FILE)
from PIL import Image as PILImage
image = PILImage.fromarray(np.uint8(input_image))
image = np.array(image)
mean_vec = [np.mean(image[:,:,vals]) for vals in range(image.shape[2])]
im = image[:, :, ::-1]
im = im - reshaped_mean_vec
cur_h, cur_w, cur_c = im.shape
pad_h = 750 - cur_h
pad_w = 750 - cur_w
print(pad_h, pad_w, "999")
im = np.pad(im, pad_width=((0, max(pad_h,0)), (0, max(pad_w,0)), (0, 0)), mode = 'constant', constant_values = 255)
segmentation = net.predict([im])
segmentation2 = segmentation[0:cur_h, 0:cur_w]
結果の画像セグメンテーションはかなり貧弱です (ただし、2 頭の牛は正しく認識されています)。
私はトレーニング済みの crf-rnn (MODEL_FILE, PRETRAINED) を使用しています。これは他の問題ではうまく機能しますが、これはより困難です。この種の画像を前処理してほとんどの牛の形状を抽出する方法についての提案をいただければ幸いです。