如何用TensorFlow影像處理函式裁剪影像?
當給定大量不同質量的訓練資料時,CNN往往能夠很好地工作。
–影像能夠通過視覺化的方式,傳達複雜場景所蘊含的某種目標主題。
–在Stanford Dogs資料集中,重要的是影像能夠以視覺化的方式,突出圖片中狗的重要性。
–一幅狗位於畫面中心的影像,會被認為比狗作為背景的影像更有價值。
並非所有資料集都擁有最有價值的影像。下面所示的兩幅影像,按照假設,該資料集本應突出不同的狗的品種
左圖突出的是一條典型的墨西哥無毛犬的重要屬性,而右圖是兩個參加聚會的人,在逗一條墨西哥無毛犬。右圖中充斥了大量的無關資訊,這可能會導致所訓練的CNN模型,對參加聚會的人的面部資訊,更為關注。類似這樣的影像中可能會包含狗,可對其進行操作,使狗而非人,成為真正被突出的物件。下面總結那些對訓練CNN有用的影像處理方法。
裁剪會將影像中的某些區域移除,將其中的資訊完全丟棄。裁剪與tf.slice類似,後者是將一個張量中的一部分,從完整的張量中移除。當沿某個維度存在多餘的輸入時,為CNN對輸入影像進行裁剪便是十分有用的。
例如,為減少輸入的尺寸,可對狗位於影像中心的圖片進行裁剪。
sess.run(tf.image.central_crop(image, 0.1))
執行上面的程式碼後,可得到輸出:
array([[[ 3, 108, 233]]], dtype=uint8)
這段示例程式碼利用了tf.image.central_crop,將影像中10%的區域摳出,並將其返回。
–該方法總是會基於所使用的影像的中心返回結果。
–裁剪通常在預處理階段使用,但在訓練階段,若背景也有用時,它也可派上用場。
–當背景有用時,可隨機化裁剪區域起始位置,到影像中心的偏移量來實現裁剪。
這個裁剪方法僅可接收實值輸入
real_image= sess.run(image)
bounding_crop= tf.image.crop_to_bounding_box(
real_image, offset_height=0, offset_width=0, target_height=2, target_width=1)
sess.run(bounding_crop)
執行上述程式碼,可得到輸出:
array([[[ 0, 0, 0]],[[ 0, 191, 0]]], dtype=uint8)
為從位於(0,0)的影像的左上角畫素開始,對影像裁剪,示例程式碼使用了tf.image.crop_to_bounding_box
目前,該函式只能接收一個具有確定形狀的張量。因此,輸入影像需要事先在資料流圖中執行。
–影像能夠通過視覺化的方式,傳達複雜場景所蘊含的某種目標主題。
–在Stanford Dogs資料集中,重要的是影像能夠以視覺化的方式,突出圖片中狗的重要性。
–一幅狗位於畫面中心的影像,會被認為比狗作為背景的影像更有價值。
並非所有資料集都擁有最有價值的影像。下面所示的兩幅影像,按照假設,該資料集本應突出不同的狗的品種
左圖突出的是一條典型的墨西哥無毛犬的重要屬性,而右圖是兩個參加聚會的人,在逗一條墨西哥無毛犬。右圖中充斥了大量的無關資訊,這可能會導致所訓練的CNN模型,對參加聚會的人的面部資訊,更為關注。類似這樣的影像中可能會包含狗,可對其進行操作,使狗而非人,成為真正被突出的物件。下面總結那些對訓練CNN有用的影像處理方法。
裁剪會將影像中的某些區域移除,將其中的資訊完全丟棄。裁剪與tf.slice類似,後者是將一個張量中的一部分,從完整的張量中移除。當沿某個維度存在多餘的輸入時,為CNN對輸入影像進行裁剪便是十分有用的。
例如,為減少輸入的尺寸,可對狗位於影像中心的圖片進行裁剪。
sess.run(tf.image.central_crop(image, 0.1))
執行上面的程式碼後,可得到輸出:
array([[[ 3, 108, 233]]], dtype=uint8)
這段示例程式碼利用了tf.image.central_crop,將影像中10%的區域摳出,並將其返回。
–該方法總是會基於所使用的影像的中心返回結果。
–裁剪通常在預處理階段使用,但在訓練階段,若背景也有用時,它也可派上用場。
–當背景有用時,可隨機化裁剪區域起始位置,到影像中心的偏移量來實現裁剪。
這個裁剪方法僅可接收實值輸入
real_image= sess.run(image)
bounding_crop= tf.image.crop_to_bounding_box(
real_image, offset_height=0, offset_width=0, target_height=2, target_width=1)
sess.run(bounding_crop)
執行上述程式碼,可得到輸出:
array([[[ 0, 0, 0]],[[ 0, 191, 0]]], dtype=uint8)
為從位於(0,0)的影像的左上角畫素開始,對影像裁剪,示例程式碼使用了tf.image.crop_to_bounding_box
目前,該函式只能接收一個具有確定形狀的張量。因此,輸入影像需要事先在資料流圖中執行。
相關文章
- Matlab影像處理常用基本函式Matlab函式
- 影像處理--影像特效特效
- TensorFlow進行簡單的影像處理
- MATLAB影像處理imadjust()函式調節影像的對比度示例Matlab函式
- MatLab 基本影像處理(3)——函式變換Matlab函式
- webgl 影像處理2---影像畫素處理Web
- Python影像處理丨5種影像處理特效Python特效
- 影像預處理
- Python 影像處理 OpenCV (6):影像的閾值處理PythonOpenCV
- Python 影像處理 OpenCV (7):影像平滑(濾波)處理PythonOpenCV
- 前端影像處理指南前端
- 影像處理_切邊
- 影像預處理方法
- 影像輪廓處理
- 紅外影像處理
- 影像處理案例03
- OpenCV(影像NaN處理)OpenCVNaN
- Python 影像處理 OpenCV (15):影像輪廓PythonOpenCV
- openCV中的影像處理 3 影像閾值OpenCV
- 數字影像處理day_12 影像分割
- Python 影像處理 OpenCV (3):影像屬性、影像感興趣 ROI 區域及通道處理PythonOpenCV
- ArcGIS批量裁剪遙感影像
- Python 影像處理 OpenCV (16):影像直方圖PythonOpenCV直方圖
- Python 影像處理 OpenCV (14):影像金字塔PythonOpenCV
- 數字影像處理實驗(四)影像銳化
- 【傳統影像處理】1 數字影像基礎
- 數字影像處理--認識影像各種概念
- 影像行畫素處理
- 遙感影像處理流程
- 影像處理之骨架提取
- 形態學影像處理
- 【scipy 基礎】--影像處理
- PhalApi-Image–影像處理API
- 傅立葉在影像處理應用
- Python影像處理庫——PILPython
- webgl 影像處理 加速計算Web
- 影像處理筆試面試題筆試面試題
- 影像預處理包括哪些東東?