Unit 01.03: Faces, plates and the things you cannot un-collect
The most consequential content in an image is often not what the photograph was of.
Five things you collected without meaning to
Faces, plates, screens, badges and metadata all arrive with the file.
The code lists each with why it matters.
CONTENT = [
("a face", "identifies a person; often special-category data"),
("a number plate", "identifies a vehicle, and often a person"),
("a screen in the background", "may contain someone else's data entirely"),
("a name badge", "identification you did not intend to collect"),
("location metadata in EXIF", "where and when, attached to the file"),
]
print(f"{'incidental content':30} why it matters")
for content, why in CONTENT:
print(f"{content:30} {why}")
print("""
None of these was the subject of the photograph. All of them are in the file.
Strip EXIF at ingestion, because it is the one you can remove completely with a
line of code. The rest need a decision before collection -- once an image is in
a training set and a model has been trained, it cannot be taken back out.
""")
EXIF is the one you can remove completely and cheaply, so remove it at ingestion rather than planning to. Location and timestamp on every photograph is a movement record of whoever took them.
The others need a decision before collection. Once an image is in a training set and a model has been trained, the content cannot be taken back out of the weights.
The mistake this prevents
The mistake is planning to filter incidental content later. Later means after training, and after training the only remedy is retraining from a cleaned dataset - which is the expensive version of a decision that cost nothing at the start.
Takeaway
Strip EXIF at ingestion and decide about faces, plates and screens before collecting. Content in a training set cannot be removed from a trained model.
