MXNet框架用於做圖像相關的項目時,讀取圖像主要有兩種方式:第一種是讀.rec格式的文件,優點是.rec文件比較穩定,移植到別的電腦上也能復現,缺點是佔空間(.rec文件的大小基本上和圖像的存儲大小差不多),而且增刪數據不大靈活。第二種是.lst和圖像結合的方式,首先在前面生成.rec文件的過程中也會生成.lst文件,這個.lst文件就是圖像路徑和標籤的對應列表,也就是說通過維護這個列表來控制你訓練集和測試集的變化,優點是靈活且不佔空間,缺點是如果圖像格式不符合要求的話容易出錯而且如果列表中的某些圖像路徑對應的圖像文件夾中圖像被刪除,就尋找不到,另外如果你不是從固態硬盤上讀取圖像的話,速度會很慢。
一、MXIndexedRecordIO文件簡介
隨機索引式rec文件
MXIndexedRecordIO 支持隨機或索引訪問數據。 我們將創建一個索引記錄文件和一個相應的索引文件,如下所示:
1
2
3
4
record = mx.recordio.MXIndexedRecordIO('tmp.idx', 'tmp.rec', 'w')
for i in range(5):
record.write_idx(i, b'record_%d'%i)
record.close()
現在,我們可以使用鍵值訪問各個記錄:
1
2
record = mx.recordio.MXIndexedRecordIO('tmp.idx', 'tmp.rec', 'r')
record.read_idx(3)
二、圖片align
圖片align可以使用insight face 的src/align/align_lfw的腳本
python align_lfw.py --input-dir '/image' --output-dir '/image_bvt'
align腳本的·分析和使用我會專門寫篇文章進行說明,這裏先不說明了