2024年,百度智慧交通赛项分为线上练习赛、线下分区赛和全国总决赛三个阶段,组委会将综合考虑线上练习赛和线下分区赛成绩来进行全国总决赛名额的选拔,其中线上成绩占10%,线下成绩占90%。线上练习赛为OCR算法赛,已在百度飞桨AI Studio星河社区发布。
数据清洗和数据增强相关工作
首先我们组内进行了优化OCR算法的讨论,分工后我参与负责数据清洗和数据增强相关工作。
对训练数据集进行分析
给出部分比较有代表性的图片,可以看到数据集中存在图像模糊不清的现象,这会极大程度影响我们OCR模型的正确性,因此我们讨论后决定,采取在传统OCR模型前加入一个图像增强模块来提高我们整体模型的准确性。
使用OpenCV和PIL库来增强图像的清晰度。这个脚本首先加载图像,然后应用锐化滤镜来增强图像的清晰度。
import cv2
from PIL import Image, ImageEnhance
def enhance_image(input_image_path, output_image_path):
# Load the image using OpenCV
image = cv2.imread(input_image_path)
# Check if image is loaded successfully
if image is None:
print("Error: Could not open or find the image.")
return
# Convert the image to RGB (OpenCV loads images in BGR format)
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
# Convert the image to a PIL image
pil_image = Image.fromarray(image)
# Enhance the sharpness
enhancer = ImageEnhance.Sharpness(pil_image)
enhanced_image = enhancer.enhance(2.0) # Increase sharpness by a factor of 2
# Save the enhanced image
enhanced_image.save(output_image_path)
print(f"Enhanced image saved to {output_image_path}")
# Example usage
input_image_path = 'input.jpg'
output_image_path = 'enhanced_output.jpg'
enhance_image(input_image_path, output_image_path)
图像清洗过后,我们还需要对原始数据打标签,目前小组内正在分工进行,这是一个比较繁杂的工作,目前还在进行。