Convolutional neural networks are the default recommendation for image-related freelance work. That default is often wrong.
When a CNN Is Overkill
A client needing to detect whether a product photo has a white background does not need a trained CNN. A histogram threshold or a simple pixel mask resolves that in under 20 lines of Python. Reaching for deep learning before profiling the actual problem adds weeks to delivery and complexity to maintenance.
Transfer Learning Has Real Limits
Fine-tuning a pre-trained model like EfficientNet works well when the target domain resembles ImageNet data. Medical imaging, satellite imagery, and industrial defect detection often diverge enough that transfer learning underperforms a smaller, purpose-built architecture trained on domain-specific data.
Questions Worth Asking Before Proposing a CNN
- How many labeled samples does the client actually have?
- Does inference need to run on edge hardware with memory constraints?
- Is the client able to maintain a model after handoff?
Recommending a CNN without addressing these points is a common pattern that leads to technically functional but practically abandoned deliverables.