検索 - みる会図書館

検索対象: TensorFlowはじめました3 Object Detection ─ 物体検出 (NextPublishing)

TensorFlowはじめました3 Object Detection ─ 物体検出 (NextPublishing)から 74件ヒットしました。

TensorFlowはじめました3 Object Detection ─ 物体検出 (NextPublishing)


50 市 ー OW New Thinking New Ways イ ン プ レ ス R & D [ NextPublishing ] E-Book / Print Book ー は じ め ま し た 一 有 山 圭 ニ ン グ G 〇 〇 g の 機 械 学 習 を 使 っ て 画 像 の 中 の 物 体 を 認 識 す る ! Object Detection ー 物 体 検 出 impre 、 5 R&D

TensorFlowはじめました3 Object Detection ─ 物体検出 (NextPublishing)


表 1 .1 : Tensor の Rank と Shape Rank Shape 0 [email protected]] 1 DI] 2 [[email protected], DI, D2] 3 DI , 例 > E DimenSlon 0 次 元 1 次 元 2 次 元 3 次 元 n 次 元 713 [ 1.1 , 2 . 2 , 3 . 3 ] [ [ 1 , 2 , 3 ] , [ 4 , 5 , 6 ] , [ 7 , 8 , 9 ] ] . Dn-1] 表 1 .2 : Tenso 「 の テ ー タ 型 ( 抜 粋 ) Python で の 型 tf . f10at32 tf . f10at64 tf . int8 tf . int16 tf . int32 tf . int64 tf . uint8 tf . uint16 tf. string tf . b001 解 説 32 ピ ッ ト 浮 動 小 数 点 形 式 64 ビ ッ ト 浮 動 小 数 点 形 式 8 ピ ッ ト 整 数 16 ピ ッ ト 整 数 32 ビ ッ ト 整 数 64 ビ ッ ト 整 数 符 号 無 し 8 ビ ッ ト 整 数 符 号 無 し 16 ピ ッ ト 整 数 可 変 長 文 字 列 真 偽 値 TensorFlow の ウ エ プ サ イ ト 4 に 、 よ り 詳 細 な 表 が あ り ま す 。 Rank が 一 致 し な い テ ン ソ ル は 演 算 で き な い な ど 、 Tensor に 起 因 す る エ ラ ー に 遭 遇 す る こ と は 少 な く あ り ま せ ん 。 必 要 に 応 じ て 確 認 し て く だ さ い 。 Tenso 「 の 操 作 Tensor は 、 Tens 。 r 同 士 の 計 算 だ け で な く 、 形 を 変 え た り 、 一 部 を 切 り 出 し た り 、 結 合 し た り 、 さ ま ざ ま な 操 作 が で き ま す 。 操 作 の オ ペ レ ー シ ョ ン は 、 Tens 。 rFl 。 w 特 有 の も の を 除 け ば 、 NumPy と 互 換 性 を 保 つ よ う に 開 発 さ れ て い ま す 。 変 形 (reshape) 前 述 し た よ う に 、 Tensor に は 「 形 」 が あ り ま す 。 tf. reshape を 使 う と 、 こ れ を 変 形 で き ま す 。 リ ス ト 1.5 で は 、 Rank 1 の Tensor を Rank3 に 変 換 す る オ ペ レ ー シ ョ ン tf. reshape を 実 行 し て い ま す 。 リ ス ト 1 .5 : Tensor を 変 形 array = tf. range(@, TensorFIow の 基 礎 11 第 1 章

TensorFlowはじめました3 Object Detection ─ 物体検出 (NextPublishing)


for r -in regnon_list: rect_object r [ ' rect ' ] [rect—object['left'] , rect—object['top'] , rect rect—object[' right'] , rect—object['bottom']] rect) Regi on ( r [ ' la bel ' ] , candidate setf. regions ・ append(candidate) class Region(0bject) : labet None None rect init——(setf, label, rect) : def label setf. tabel self. rect rect 座 標 の 正 規 化 ア ノ テ ー シ ョ ン の 座 標 は 絶 対 座 標 で す 。 し た が っ て 、 画 像 の 大 き さ に 依 存 し て い ま す 。 今 回 使 用 す る モ デ ル の 入 力 は 、 正 方 形 の 画 像 を 想 定 し て い ま す 。 デ ー タ セ ッ ト に 含 ま れ る 画 像 の サ イ ズ は 一 定 で は な い の で 、 入 力 の 前 に 画 像 の 拡 大 縮 小 や 、 縦 横 の 比 率 が 変 わ る こ と も あ り ま す 。 画 像 の サ イ ズ や 比 率 に 依 存 し な い よ う に 、 座 標 を @ . @ー 1. @ の 範 囲 に 正 規 化 し ま す ( リ ス ト 2.4 ) 。 リ ス ト 2.4 : create_dataset. py def _normalize(image, rect) : teft, top, right, bottom return [teft / image . width, top / image . height, right / image. width, bottom / image . height] 図 2.8 は 、 画 像 の 大 き さ ( 1024X1024 ) で 、 そ れ ぞ れ の 座 標 を 正 規 化 し て い ま す 。 rect 30 第 2 章 グ リ ッ ド ベ ー ス の 物 体 検 出

TensorFlowはじめました3 Object Detection ─ 物体検出 (NextPublishing)


TensorFlow は じ め ま し た 3 Object Detec- tion ー 物 体 検 出 2018 年 1 月 26 日 初 版 発 行 ver. 1.0 (PDF 版 ) 2018 年 1 月 27 日 Ver. 1.1 著 者 有 山 圭 二 編 集 人 山 城 敬 井 芹 昌 イ 発 行 人 発 行 株 式 会 社 イ ン プ レ ス R & D 〒 101-0051 東 京 都 千 代 田 区 神 田 神 保 町 一 丁 目 105 番 地 http://nextpublishing.jp/ ◎ 本 書 は 著 作 権 法 上 の 保 護 を 受 け て い ま す 。 本 書 の 一 部 あ る い は 全 部 に つ い て 株 式 会 社 イ ン プ レ ス R & D か ら 文 書 に よ る 許 諾 を 得 ず に 、 い か な る 方 法 に お い て も 無 断 で 複 写 、 複 製 す る こ と は 禁 じ ら れ て い ま す 。 @2018 Keiji Ariyama. AII rights reserved. ISBN978-4-8443-9808-0 NextPubIishing ◎ 本 書 は NextPub ⅱ shing メ ソ ッ ド に よ っ て 発 行 さ れ て い ま す 。 NextPublishing メ ソ ッ ド は 株 式 会 社 イ ン プ レ ス R & D が 開 発 し た 、 電 子 書 籍 と 印 書 籍 を 同 時 発 行 で き る デ ジ タ ル フ ァ ー ス ト 型 の 新 出 版 方 式 で す 。 http://nextpublishing.jp/

TensorFlowはじめました3 Object Detection ─ 物体検出 (NextPublishing)


リ ス ト 1 .7 : 省 略 し た 変 形 array = tf. range(), [email protected]) print(array ・ get—shape()) reshaped—array ニ tf. reshape(array, print(reshaped—array ・ get_shape()) with tf. Session() as sess: [ 45 46 47 48 49 [email protected] 51 52 53 54 55 56 57 58 59 ] ] [ 30 31 32 33 34 35 36 37 38 39 [email protected] 41 42 43 44 ] [ 15 16 17 18 19 [email protected] 21 22 23 24 25 26 27 28 29 ] [ [ @ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ] ( 4 , 15 ) ( 60 , ) リ ス ト 1.7 の 実 行 結 果 は 次 の 通 り で す 。 print(resutt) sess . run(reshaped—array) result ー 1 ] ) も 、 値 が 計 算 で き な い た め に な り ま す 。 ま た 、 省 略 が 2 つ 以 上 あ る 場 合 (e.g.[[email protected], 形 の 指 定 を 省 略 し た 場 合 で も 、 変 換 対 象 と な る Tens 。 r の 要 素 数 を 割 り き れ な い 場 合 は エ ラ ー 工 ラ ー に な り ま す 。 切 り 出 し (slice) tf. slice を 使 う と 、 Tens 。 r の 要 素 の 一 部 を 切 り 出 す こ と が で き ま す 。 ス ラ イ ス 構 文 で Tens 。 r の 切 り 出 す 方 法 を 紹 介 し ま す 。 こ で は 、 Python の リ ス ト 1.8 は 、 要 素 数 60 の Tensor を tf. reshape で [4, 15 ] に 変 形 し て い ま す 。 次 に 、 1 番 目 の 軸 に つ い て 4 番 目 (index3) の 要 素 以 下 を す べ て 切 り 出 し て い ま す 。 with tf. Session() as sess: print(sticed—arrayl. get_shape()) reshaped—array[3, sliced_arrayl reshaped—array = tf. reshape(array, array tf. range(), 6 の リ ス ト 1 .8 : Tensor を 変 形 リ ス ト 1.8 の 実 行 結 果 は 次 の 通 り で す 。 print(result) sess . run(sliced_arrayl) result 第 1 章 TensorFIow の 基 礎 13

TensorFlowはじめました3 Object Detection ─ 物体検出 (NextPublishing)


FLAGS . image_di r if FLAGS . output_di r is None \ output_dir eIse FLAGS . output_dir evaI(FLAGS . train_path, list(file_list) , output_dir, model . INPUT_ 工 MAGE) name m a 1 n tf. app. run ( ) 関 数 _load_image は 、 画 像 を グ レ ー ス ケ ー ル ( 1 チ ャ ン ネ ル ) で 読 み 込 み 、 リ サ イ ズ し た あ と バ イ ト デ ー タ に 変 換 し ま す 。 こ れ ら の 処 理 は Pi Ⅱ ow と NumPy で 行 い ま す 。 計 算 グ ラ フ に 画 像 デ ー タ に 対 す る 画 像 デ ー タ の 入 力 は 、 プ レ ー ス ホ ル ダ —image_placeholder を 介 し て 行 い ま す 。 学 習 済 み モ デ ル に よ る 推 論 は 、 base_model. prepare_layers と model. output_layers で 実 行 し ま す 。 得 ら れ る 結 果 が 、 確 信 度 と 座 標 を 含 む グ リ ッ ド で す 。 関 数 _create-boxes は 、 モ デ ル の 出 力 と 同 じ 形 (modeI.OUTPUT-SHAPES で 定 義 ) の グ リ ッ ド を 作 成 し て か ら 、 モ デ ル の 出 力 を そ れ ぞ れ 対 応 す る b 。 x に 割 り 当 て ま す 。 関 数 -write-regions は 、 モ デ ル の 出 力 を 画 像 上 に プ ロ ッ ト し ま す 。 モ デ ル の 出 力 は b 。 x の 座 標 と か ら の 相 対 位 置 (offset) な の で 、 b 。 x そ の も の の 座 標 か ら 再 計 算 し た 後 、 正 規 化 さ れ た 座 標 を 実 際 の 値 に 変 換 し ま す 。 リ ス ト 2.14 の プ ロ グ ラ ム は 、 次 の よ う に 実 行 し ま す 。 $ python eval—ssd. py \ -tfrecords_dir [ 学 習 デ ー タ を 出 力 し た デ ィ レ ク ト リ ] \ -i mage—d i r [ 画 像 フ ァ イ ル が あ る テ ィ レ ク ト リ ] \ -output-dir [ 結 果 を 出 力 す る デ ィ レ ク ト リ ] \ -train-path [ 学 習 ・ 訓 練 で 保 存 し た フ ァ イ ル の バ ス ] 「 学 習 ・ 訓 練 で 保 存 し た フ ァ イ ル の パ ス 」 に は フ ァ イ ル を 指 定 し ま す 。 デ ィ レ ク ト リ で は あ り ま せ ん 。 ま た 、 そ の 際 は ピ リ オ ド ( . ) 以 降 は 除 い て 指 定 す る 必 要 が あ り ま す 。 た と え ば 、 mode し ckpt ー [email protected]@@@@. index と い う フ ァ イ ル を 読 み 込 む 場 合 、 指 定 す る フ ァ イ ル パ ス は [ テ ィ レ ク ト リ ]/model . [email protected]@@@@ と な り ま す 。 学 習 済 み モ デ ル を 検 証 画 像 ( 学 習 に 使 っ た デ ー タ セ ッ ト に 含 め て い な い 画 像 ) に 適 用 し た 結 果 が 、 図 2.12 で す 。 52 第 2 章 グ リ ッ ド ベ ー ス の 物 体 検 出

TensorFlowはじめました3 Object Detection ─ 物体検出 (NextPublishing)


観 → 0 / 0 顔 領 域 と box の 対 応 第 2 章 で は [ 21 , 21 ] の グ リ ッ ド し か な か っ た の で 、 顔 領 域 の 中 心 座 標 が 含 ま れ る b 。 x を 選 択 す れ ば 問 題 あ り ま せ ん で し た 。 し か し 今 回 は 、 異 な る サ イ ズ の b 。 x で 構 成 さ れ る 複 数 の グ リ ッ ド が 存 在 す る た め 、 中 心 座 標 が 基 準 で は 最 適 な box を 選 択 で き ま せ ん 。 そ こ で 「 Jaccard Overlap3 」 を 使 っ て 最 適 な box を 選 択 し ま す 。 Jaccard OverIap は 、 図 3.11 の よ う に 、 2 つ の 領 域 の 重 な っ て い る 面 積 (overlap) を 、 2 つ の 領 域 を 結 合 し た 面 積 (union) で 割 っ て 算 出 し ま す ( リ ス ト 3.3 ) 。 2 つ の 領 域 が 完 全 に 一 致 し て い る 場 合 は 1. @、 ま っ た く 重 な っ て い な い 場 合 は @. @ と な り ま す 。 図 3.11 : Jaccard Overlap リ ス ト 3.3 : box_util. py def _land(rect) : teft, top, right, bottom left width right height = bottom ー top rect i f wi dth く @ 0 r hei ght く 0 : return @ return width 大 height def jaccard—overlap(rectl, rect2) : rectl_left, rectl_top, rectl_right, rectl_bottom rect2_Ieft, rect2_top, rect2_right, rect2_bottom overlap—right, overlap—bottom] ) tand( [overlap—left, overlap—top, overtap—bottom = min(rectl_bottom, rect2—bottom) overtap—top = max(rectl—top, rect2—top) min(rectl—right, rect2_right) overlap—teft ニ max(rectl_left, rect2—left) overtap overlap—right rectl rect2 第 3 章 物 体 認 識 奮 闘 記 63

TensorFlowはじめました3 Object Detection ─ 物体検出 (NextPublishing)


print(array ・ get—shape()) reshaped—array = tf. reshape(array, [ 4 , 25 ] ) print(reshaped—array. get—shape()) with tf. Session() as sess: [ 4 , 2 の ) ( 4 , 25 ) ( 100 , ) リ ス ト 1.5 の 実 行 結 果 は 次 の 通 り で す 。 print(resutt) result sess . run(reshaped—array) す 。 要 素 数 が 一 致 し な い 変 形 を 指 定 す る と エ ラ ー が 発 生 し ま す ( リ ス ト 1.6 ) 。 変 形 の 際 、 指 定 す る 形 の 合 計 は 、 変 換 の 対 象 と な る Tens 。 r の 要 素 数 と 一 致 す る 必 要 が あ り ま [ 4 , 25 ] に 変 わ っ て い ま す 。 array と し て 宣 言 し た 時 点 の Tensor の 形 は [ [email protected]@] で し た が 、 tf. reshape を 適 用 し た 後 は [ 75 76 77 78 79 [email protected] 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 ] ] [[email protected] 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 ] [ 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 [email protected] 41 42 43 44 45 46 47 48 49 ] [ [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 ] リ ス ト 1.6 の 実 行 結 果 は 次 の 通 り で す 。 tf. reshape(array, reshaped—array print(array. get—shape()) array tf. range(), 100 ) リ ス ト 1 .6 : 要 素 数 の 合 わ な い 変 形 ' Reshape—I ' (op: [ 2 ] and with input tensors com— 'Reshape') with input shapes: VaIueError: Cannot reshape a tensor with 100 elements tO shape [ 4 , [email protected]] ()@ etements) for れ る よ う に 値 を 計 算 し ま す 。 次 元 数 ー 1 が 省 略 を 表 し ま す 。 す る 必 要 が あ り ま す 。 そ の 場 合 、 形 の 一 部 を 省 略 す る こ と が で き ま す 。 input[l] puted as partial shapes: 省 略 し た 場 合 、 tf. reshape オ ペ レ ー シ ョ ン は 、 変 換 の 対 象 と な る Tens 。 r の 要 素 数 が 割 り 切 た と え ば 、 1 番 目 の 次 元 数 を 4 と し た い 場 合 、 [ 4 , ー 1 ] を 指 定 し ま す ( リ ス ト 1.7 ) 。 2 番 目 の [ 4 , 25 ] の よ う に 指 定 し て い る と 、 変 換 の 対 象 と な る Tens 。 r の 要 素 数 が 変 わ る た び に 修 正 [ 4 , 2 の . [ 4 , 20 ] . input[l] shapes: 12 第 1 章 TensorFlow の 基 礎

TensorFlowはじめました3 Object Detection ─ 物体検出 (NextPublishing)


Tensor("add_1:@" 3 3 3 , 4 ] ) 2 , 算 で き ま せ ん が 、 プ ロ ー ド キ ャ ス テ ィ ン グ に よ り 計 算 が 可 能 に な り ま す 。 リ ス ト 1.18 の よ う に 、 本 来 、 一 次 元 配 列 の arrayl と ス カ ラ ー の vatuel は 、 そ の ま ま で は 計 ス テ ィ ン グ を 使 う と 、 形 の 異 な る 配 列 同 士 を 自 動 的 に 変 換 し て 計 算 で き ま す 。 プ ロ ー ド キ ャ ス テ ィ ン グ (Broadcasting) は 、 NumPy5 で 一 般 的 な 機 能 で す 。 プ ロ ー ド キ ャ 1 .6 プ ロ ー ド キ ャ ス テ ィ ン グ 置 き 換 え ら れ て い ま す 。 そ の た め 、 オ ペ レ ー シ ョ ン を 実 行 す る ま で 値 は 得 ら れ ま せ ん 。 dtype=i nt32 ) で あ る こ と に 注 意 し て く だ さ い 。 演 算 子 + は オ ー バ ー ロ ー ド で tf. add に shape=() , 度 目 の print(resuIt2) で 表 示 さ れ る の が Tensor("add-1:@" resultl と resuIt2 の 結 果 は 同 じ に な り ま し た 。 import numpy- as np リ ス ト 1 .18 : NumPy の プ ロ ー ド キ ャ ス テ ィ ン グ shape=() , dtype=int32) arrayl valuel result np . a r ray ( [ 1 , 2 , 3 5 arrayl + ー valuel print(result) [ 6 7 8 9 ] TensorFIow に も プ ロ ー ド キ ャ ス テ ィ ン グ の 仕 組 み が あ り 、 形 の 違 う 配 列 同 士 で 演 算 す る こ リ ス ト 1 .19 : TensorFlow の プ ロ ー ド キ ャ ス テ ィ ン グ と が で き ま す ( リ ス ト 1.19 ) 。 import tensorflow as tf 20 arrayl valuel result 第 1 章 tf. constant([l, tf. constant(5) arrayl + valuel TensorFlow の 基 礎

TensorFlowはじめました3 Object Detection ─ 物体検出 (NextPublishing)


( 15 , ) [ 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 ] 1 番 目 の 軸 以 下 を 切 り 出 し た た め 、 sliced_arrayl の 形 は (15,) と な っ て い ま す 。 : ] と 、 軸 に : を 指 定 す る こ と で 、 そ の 軸 に つ い て は す べ て の 要 素 を 切 り 出 す と い う 指 定 [ 3 , に な り ま す 。 こ れ ら に つ い て は Python の ス ラ イ ス 構 文 と 同 様 で す 。 詳 細 は 、 別 途 Python の ド キ ュ メ ン ト を 参 照 し て く だ さ い 。 結 合 (concatnate) Tens 。 r 同 士 を 結 合 し て 、 1 つ の Tensor と し て 取 り 扱 う こ と が で き ま す 。 リ ス ト 1.9 で は 、 要 素 数 60 の Tensor を tf. reshape で [4, 15 ] に 変 形 し て い ま す 。 次 に 、 1 番 目 の 軸 に つ い て 1 番 目 (index0) と 4 番 目 (index3) の 要 素 以 下 を す べ て 切 り 出 し て い ま す 。 最 後 に 、 切 り 出 し た sliced_arrayl と sliced_array2 を tf. concat オ ペ レ ー シ ョ ン で 結 合 し て い ま す 。 tf. concat オ ペ レ ー シ ョ ン は 1 番 目 の 引 数 に 結 合 し た い Tensor の リ ス ト を 、 2 番 目 の 引 数 axis に 、 ど の 軸 を 基 準 に Tens 。 r を 結 合 す る か を 指 定 し ま す 。 リ ス ト 1 .9 : Tensor を 変 形 array = tf. range(), [email protected]) reshaped—array = tf. reshape(array, reshaped—array[@, sliced_arrayl sticed_array2 reshaped—array[3, tf. concat( [sliced_arrayl, sticed—array2] , [email protected]) concat_array print(concat—array. get—shape() ) with tf. Session() as sess: resutt sess . run(concat_array) print(resutt) リ ス ト 1.8 の 実 行 結 果 は 次 の 通 り で す 。 [ @ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 45 46 47 48 49 [email protected] 51 52 53 54 55 56 57 58 59 ] 要 素 数 30 の Tensor が で き て い ま す 。 こ れ は 、 元 の reshaped-array を 切 り 出 し し た と き に 形 が ( 15 , ) と な っ た た め で す 。 ( 2 , 15 ) の よ う な 形 の 結 果 を 得 た い 場 合 は 、 リ ス ト 1.10 の よ う に し ま す 。 た と え ば 、 TensorFIow の 基 礎 14 第 1 章