Skip to content
CCTV, surveillance & documents

CCTV, surveillance & documents

Cameras, visual inspection and documents. CCTVService checks and describes camera sources and samples frames from them. SurveillanceService grades frames on the sovereign vision tier, detects objects locally at camera rate, keeps annotated evidence frames and streams events. MaterialAnalyticsService aggregates everything surveillance has seen. OCRService reads text, spreadsheet logic and source code out of documents.

The rule throughout is that an absence is reported as an absence. A frame nobody graded is not PRISTINE, a detector that did not score an object does not send 0.0, and every stage that might not run says what it did in a *_note field. Show those notes. Do not treat an empty list as “nothing there”.

Summary

ServiceRPCKindPurpose
CCTVServiceTestConnectionUnaryCheck that a camera or file source answers
CCTVServiceExtractKnowledgeUnarySample frames and run local detection
CCTVServiceDescribeSourceUnaryAsk an RTSP camera to describe its streams
SurveillanceServiceIngestSurveillanceFeedUnaryGrade a frame or feed with the vision model
SurveillanceServiceDetectLiveFrameUnaryLocal object detection on one frame, no model
SurveillanceServiceGetEvidenceFrameUnaryFetch a retained annotated frame
SurveillanceServiceTriggerSensorCueingUnaryBroadcast a cross-sensor cue event
SurveillanceServiceSubscribeTelemetryServer streamingStream surveillance events
MaterialAnalyticsServiceAnalyzeMaterialQualityUnaryAggregate sightings by material, class and sensor
OCRServiceExtractTextUnaryOCR text from documents and images
OCRServiceExtractExcelCodeUnaryFormulas, macros and VBA from a workbook
OCRServiceExtractCodeUnaryStructure of a source-code file

Camera credentials sent to these RPCs (access_key_id, secret_access_key) are used for the call only. The password is never echoed in a response.

CCTVService

Full name semantics.v1.CCTVService.

TestConnection

rpc TestConnection(CCTVServiceTestConnectionRequest) returns (CCTVServiceTestConnectionResponse);
  • Kind: Unary.
  • Auth: Bearer session.
  • Errors: UNAVAILABLE if endpoint_url is empty, or a file source does not exist or cannot be read. INVALID_ARGUMENT if an image file source does not decode.

For rtsp://, http:// and https:// endpoints, the server probes the camera when a reachability probe is available in the deployment. Otherwise it accepts the endpoint without contacting it. Read success and live_check_performed together:

successlive_check_performedMeaning
truetrueThe endpoint answered, or a file source exists and decodes. No video frame was decoded, so the stream itself is unverified.
falsetrueThe probe ran and the endpoint did not answer. message says how.
truefalseNothing contacted the camera. This says nothing about reachability.

Request: CCTVServiceTestConnectionRequest

FieldTypeDescription
endpoint_urlstringRequired. Camera URL (rtsp://, http(s)://) or a file source.
access_key_idstringCamera username.
secret_access_keystringCamera password. Write-only.

Response: CCTVServiceTestConnectionResponse

FieldTypeDescription
successboolSee the table above.
messagestringWhat happened, safe to show verbatim.
live_check_performedboolWhether anything actually contacted the source. false does not mean failure. It means this response makes no claim about reachability.

ExtractKnowledge

rpc ExtractKnowledge(CCTVServiceExtractKnowledgeRequest) returns (CCTVServiceExtractKnowledgeResponse);
  • Kind: Unary.
  • Auth: Bearer session.
  • Errors: UNAVAILABLE for an empty endpoint or a local webcam (0, webcam), which the server cannot capture. Frame acquisition errors are returned as they occur.

Samples frames from the source and runs the local object detector on them. No vision model and no OCR is involved. The server tries the camera’s snapshot capability first when available, and falls back to decoding the stream. The frames come back as JPEG bytes, and text_summary reports the frame count, how the frames were obtained, and what the detector did and found.

Request: CCTVServiceExtractKnowledgeRequest

FieldTypeDescription
endpoint_urlstringRequired. Camera URL or file source.
access_key_idstringCamera username.
secret_access_keystringCamera password. Write-only.
max_framesint32Frames to sample. 0 or negative means 1. Capped by the deployment’s sweep limit, which is 2 by default and never more than 8.

Response: CCTVServiceExtractKnowledgeResponse

FieldTypeDescription
vectorrepeated floatNot populated by the server.
text_summarystringPlain-text report: frames extracted, the frame source, the detector report and one line per detection.
framesrepeated bytesThe sampled frames, as JPEG. No OCR or vision model has read them.

Reserved: fields 1 and 4.

DescribeSource

rpc DescribeSource(CCTVServiceDescribeSourceRequest) returns (CCTVServiceDescribeSourceResponse);
  • Kind: Unary.
  • Auth: Bearer session.
  • Errors: INVALID_ARGUMENT if endpoint_url is empty. A device-capture camera pushes frames from the client, so the server has nothing to ask. UNAVAILABLE if the camera could not be asked.

Asks the camera what it is instead of reading back what an operator typed. For rtsp:// and rtsps:// URLs the server speaks RTSP (OPTIONS, then DESCRIBE) and returns the session description the camera stated: its streams, codecs and so on. http(s):// URLs and file paths get a supported: false description that names what would answer for them. This is an answer, not an error.

A full description does not show that the camera is publishing usable video, that a frame would decode, or that playback would be permitted. A recorder will describe a channel whose camera is unplugged. Only sampling a frame answers that. Show the description’s reason verbatim.

Request: CCTVServiceDescribeSourceRequest

FieldTypeDescription
endpoint_urlstringRequired. An rtsp:// or rtsps:// URL. Other forms are answered with supported: false.
access_key_idstringCamera username. A setting, not a secret.
secret_access_keystringCamera password, used to answer a Digest challenge. Never echoed, logged or written to lineage.

Response: CCTVServiceDescribeSourceResponse

FieldTypeDescription
descriptionSourceDescriptionWhat the camera said. Never unset on success. supported: false with a reason means the source publishes no catalogue, or nothing could ask it.

SurveillanceService

Full name semantics.v1.SurveillanceService.

Two paths answer different questions at very different costs:

  • IngestSurveillanceFeed asks the sovereign vision model what is in the frame, what it is made of and how damaged it is. It can take minutes on CPU inference. It writes a lineage record and a sighting, may retain an evidence frame, and emits a telemetry event.
  • DetectLiveFrame runs a local detector in the serving process and returns boxes in milliseconds. It grades nothing and writes nothing.

IngestSurveillanceFeed

rpc IngestSurveillanceFeed(IngestSurveillanceFeedRequest) returns (IngestSurveillanceFeedResponse);
  • Kind: Unary.
  • Auth: Bearer session.
  • Errors: INVALID_ARGUMENT if the request carries no usable input: no valid image_frame, no raw_ocr_payload, and no frames from feed_url. An image_frame that fails validation is reported as invalid image_frame.

Inputs can be combined. The server uses:

  • image_frame: one JPEG or PNG. It is validated from its header before decoding (at most 12 MiB and 40 megapixels) and downscaled for the vision tier.
  • raw_ocr_payload: text already read at the edge.
  • feed_url: frames sampled from a feed. max_frames has the same default and cap as ExtractKnowledge.

The vision model then grades the scene and names each inspectable object. People are never subjects. A frame holding only people, or nothing inspectable, is not assessed: the grade, classification, severity, remediation and damage percentage are all empty or zero, and that means “no finding”, not a low score. Per-object boxes come from a detection turn, region proposals or the local detector. objects[].box_origin says which.

Each ingest also:

  • records one sighting per object for MaterialAnalyticsService;
  • emits a DAMAGE_ASSESSMENT telemetry event, or DAMAGE_ASSESSMENT_NOT_PERFORMED when the frame was not assessed;
  • retains one annotated evidence frame, for the frame holding the worst object, only when the operator has configured a retention window. See evidence_note.

Request: IngestSurveillanceFeedRequest

FieldTypeDescription
sensor_idstringWhich camera or sensor. Free text. Keys sightings and events.
domainstringLAND, AIR, MARITIME or CYBER. With AIR, an aerial intruder is classified UNAUTHORIZED_DRONE.
gps_coordinatesstringLocation, passed through to events.
confidence_scoredoubleThe client’s own confidence. Recorded in event metadata. It does not affect the grade.
raw_ocr_payloadstringOCR text from the edge, added to the model’s input.
image_framebytesOne encoded JPEG or PNG frame.
feed_urlstringRTSP or HTTP video feed URL, or a file source.
max_framesint32Frames to sample from feed_url. 0 means 1. Capped at the deployment’s sweep limit (default 2, at most 8).

Response: IngestSurveillanceFeedResponse

FieldTypeDescription
threat_detectedboolWhether the grading found a threat.
classificationstringFor example NO_THREAT, INFRASTRUCTURE_DAMAGE or UNAUTHORIZED_DRONE. Empty when not assessed.
threat_severitystringSEVERE, HIGH, MEDIUM or LOW. Empty when not assessed.
suggested_remediation_actionstringSuggested action. Empty when not assessed.
damage_gradestringWorst object’s grade: PRISTINE, DAMAGED, DEFECTIVE or DESTROYED. Empty when not assessed. Empty is not PRISTINE.
ocr_textstringReadable text from the frames and the edge OCR payload. Never image data.
frames_processedint32Frames that reached the grading turn, which sees them together as one scene.
damage_percentageint32The vision model’s estimate for the worst object, 0 to 100. 0 when not assessed.
subject_objectstringThe inspectable object assessed, such as a pallet or container door. Empty means none: every grade field is then a no-finding.
subject_materialstringWhat the subject is made of.
damage_box_xfloatWorst object’s box, as a 0 to 1 fraction of frame width. All four box fields zero means no localisable region.
damage_box_yfloatBox top, as a fraction of frame height.
damage_box_wfloatBox width fraction.
damage_box_hfloatBox height fraction.
objectsrepeated DetectedObjectEvery inspectable object, each with its own box. People are never listed.
localisation_notestringWhy there are no per-object boxes, when there are none. Empty when boxes are present or localisation did not apply.
class_vocabularystringThe closed class set that label_in_vocabulary was graded against, for example runink.coldchain.v1. Empty only when there are no objects.
frames_detectedint32Frames that each got their own detection turn. DetectedObject.frame_index indexes these. It can differ from frames_processed.
evidence_frameEvidenceFrameRefThe retained annotated frame. Absent is the normal case, because retention is off unless the operator configures it.
evidence_notestringWhy no frame was retained, when none was.
detection_notestringWhat the local detector did. Never empty. If no detector is set up in this deployment, the note says so; that is not a statement that the camera saw nothing.

DetectLiveFrame

rpc DetectLiveFrame(DetectLiveFrameRequest) returns (DetectLiveFrameResponse);
  • Kind: Unary.
  • Auth: Bearer session.
  • Errors: INVALID_ARGUMENT if image_frame is empty or fails the same validation as IngestSurveillanceFeed. An undecodable frame is never reported as “nothing detected”.

One frame in, the local detector’s boxes out, with no model and no network hop. Nothing is recorded: no lineage, no sighting, no evidence frame and no telemetry event. The frame is not downscaled. Every returned object has box_origin: BOX_ORIGIN_LOCAL_DETECTOR, a detector_label and a detector_label_set. Its label, material, damage_grade and object_class are empty, damage_percentage is 0 and label_in_vocabulary is absent. None of those is a finding, because nothing on this path grades.

Request: DetectLiveFrameRequest

FieldTypeDescription
sensor_idstringWhich camera. Used for logging only.
image_framebytesRequired. One encoded JPEG or PNG frame, as captured.

Response: DetectLiveFrameResponse

FieldTypeDescription
objectsrepeated DetectedObjectOne per detection, as described above.
detection_notestringWhat the detection stage did. Never empty.
detection_latency_microsint64Wall-clock time of the detector call in the server, in microseconds. Excludes network and queueing. Use it to pace a capture loop, not as a frame rate.

GetEvidenceFrame

rpc GetEvidenceFrame(GetEvidenceFrameRequest) returns (GetEvidenceFrameResponse);
  • Kind: Unary.
  • Auth: Bearer session. The frame must belong to the caller’s tenant.
  • Errors: FAILED_PRECONDITION if the deployment has no evidence store, or the frame is past its retained_until. INVALID_ARGUMENT for a malformed handle. PERMISSION_DENIED if the handle belongs to another tenant. NOT_FOUND if the frame is not available. INTERNAL if the stored frame cannot be read.

Returns the annotated JPEG an ingest retained, with FACE’s boxes and labels drawn in. The raw frame is never kept. A retained frame shows a reviewer what was assessed. It is not forensically provenanced: nothing signs it or timestamps it against a trusted clock, and a drawn box is FACE’s own model’s answer, not proof.

retained_until is when FACE stops serving the frame. It is not a deletion. The stored object stays until the storage lifecycle policy that the operator configures removes it.

Request: GetEvidenceFrameRequest

FieldTypeDescription
handlestringevidence_frame.handle from an ingest response. Opaque: do not build one.

Response: GetEvidenceFrameResponse

FieldTypeDescription
annotated_framebytesThe annotated JPEG.
content_typestringAlways image/jpeg.
captured_atgoogle.protobuf.TimestampWhen the source frames were ingested.
retained_untilgoogle.protobuf.TimestampWhen FACE stops serving it.
sensor_idstringThe sensor it came from.
boxes_drawnint32Rectangles drawn on the image. 0 is a real answer.

TriggerSensorCueing

rpc TriggerSensorCueing(TriggerSensorCueingRequest) returns (TriggerSensorCueingResponse);
  • Kind: Unary.
  • Auth: Bearer session.
  • Errors: INVALID_ARGUMENT if source_sensor_id or target_sensor_type is empty, or the target type is not one of INFRARED_CAMERA, YARD_CCTV or PLC_CRANE_LOCK.

Broadcasts a SENSOR_CUE telemetry event with severity HIGH. No actuator is contacted: this service has no PTZ camera or PLC client. The status says a cue was requested.

Request: TriggerSensorCueingRequest

FieldTypeDescription
source_sensor_idstringRequired. The sensor raising the cue.
target_sensor_typestringRequired. INFRARED_CAMERA, YARD_CCTV or PLC_CRANE_LOCK, case-insensitive.
target_coordinatesstringWhere to cue. Passed to the event as gps_coordinates.
alert_payloadstringFree text, carried in the event’s metadata.

Response: TriggerSensorCueingResponse

FieldTypeDescription
cue_acknowledgedbooltrue once the event is broadcast.
target_statusstringCAMERA_CUE_REQUESTED for camera targets, or CRANE_LOCK_REQUESTED for PLC_CRANE_LOCK. The proto comment lists CAMERA_CUE_ACTIVE and CRANE_LOCKED, which the server does not return.

SubscribeTelemetry

rpc SubscribeTelemetry(SubscribeTelemetryRequest) returns (stream SubscribeTelemetryResponse);
  • Kind: Server streaming. Available over native gRPC and gRPC-web.
  • Auth: Bearer session.
  • Errors: None of its own. The stream stays open until the client cancels.

Streams events as IngestSurveillanceFeed and TriggerSensorCueing produce them. There is no replay, so only events after subscribing arrive. A second subscription with the same subscriber_id replaces the first. Use a unique id per client session.

Request: SubscribeTelemetryRequest

FieldTypeDescription
subscriber_idstringUnique client or session id. Empty gets a generated id.

Response: SubscribeTelemetryResponse

FieldTypeDescription
eventTelemetryEventOne event.

MaterialAnalyticsService

Full name semantics.v1.MaterialAnalyticsService.

AnalyzeMaterialQuality

rpc AnalyzeMaterialQuality(AnalyzeMaterialQualityRequest) returns (AnalyzeMaterialQualityResponse);
  • Kind: Unary.
  • Auth: Bearer session.
  • Errors: INVALID_ARGUMENT if exactly one of baseline_since and baseline_until is set. UNAVAILABLE if the sighting corpus or the baseline window cannot be read.

Exploratory analysis over the sightings recorded by IngestSurveillanceFeed: which materials, object classes and sensors were seen, and how their damage grades are distributed. A comparison is returned only when you supply a complete baseline window.

The unit is a sighting, not a thing. A sighting is one object in one frame of one ingest. Nothing tracks an object between frames, so a six-frame sweep of two pallets yields twelve sightings. totals.multi_frame_sweep_sightings tells you how much of a result is exposed to that.

Absent is not zero. A sighting the vision tier did not grade is counted in ungraded_sightings and nowhere else. Means and shares are optional, each ships with its denominator, and they are absent when there is nothing to average.

Read corpus_scanned first. false means no scan happened, and every count is meaningless rather than zero.

Request: AnalyzeMaterialQualityRequest

FieldTypeDescription
sincegoogle.protobuf.TimestampWindow start. Unset means the corpus’s retention floor.
untilgoogle.protobuf.TimestampWindow end. Unset means now.
sensor_idstringExact-match filter. Empty means no filter.
connection_idstringExact-match filter.
object_classstringExact-match filter on the closed-vocabulary class, never a free label.
materialstringExact-match filter.
baseline_sincegoogle.protobuf.TimestampBaseline window start. Set it together with baseline_until to get a comparison.
baseline_untilgoogle.protobuf.TimestampBaseline window end.

Response: AnalyzeMaterialQualityResponse

FieldTypeDescription
corpus_scannedboolWhether a corpus was actually read.
corpus_durableboolWhether what was scanned survives a restart. false means only this process’s recent memory was read.
corpus_notestringWhat was read and what it does not cover. Always set.
window_sincegoogle.protobuf.TimestampWindow actually folded, after clamping to retention.
window_untilgoogle.protobuf.TimestampWindow end actually used.
totalsSightingTotalsTotals over the window.
by_materialrepeated SightingGroupBy material, sighting_count descending. No zero rows.
by_object_classrepeated SightingGroupBy closed-vocabulary class. Sightings never classified appear in no class group.
by_sensorrepeated SightingGroupBy sensor.
comparisonWindowComparisonPresent only when a complete baseline window was sent.
class_vocabulariesrepeated stringEvery class vocabulary the sightings were graded against. More than one means class counts are not comparable across the window.

OCRService

Full name semantics.v1.OCRService.

All three RPCs take an OCRDataSource and read the file or files it resolves to. OCR runs locally in the deployment.

ExtractText

rpc ExtractText(ExtractTextRequest) returns (ExtractTextResponse);
  • Kind: Unary.
  • Auth: Bearer session.
  • Errors: INVALID_ARGUMENT if source is missing. UNAVAILABLE if the OCR engine is not enabled in this deployment. INTERNAL if the source cannot be resolved to files.

OCRs every resolved file, PDFs and images, and joins the text with --- Start File: <name> --- and --- End File: <name> --- markers. A file that fails is marked --- Error Processing <name> --- and skipped.

Request: ExtractTextRequest

FieldTypeDescription
sourceOCRDataSourceRequired. What to read.

Response: ExtractTextResponse

FieldTypeDescription
textstringThe combined text.
confidenceoptional floatMean word confidence reported by the OCR engine, weighted by words, over the files that stated one. Absent when no engine reported a confidence. Absent is not 0.
metadatamap<string, string>source_path, file_count, files_read, engine, method, and confidence_basis when confidence is set.

ExtractExcelCode

rpc ExtractExcelCode(ExtractExcelCodeRequest) returns (ExtractExcelCodeResponse);
  • Kind: Unary.
  • Auth: Bearer session.
  • Errors: None as gRPC status. Failures return success: false with error_message.

Extracts formulas, macros, VBA modules and named ranges from a workbook.

Request: ExtractExcelCodeRequest

FieldTypeDescription
sourceOCRDataSourceThe workbook to read.

Response: ExtractExcelCodeResponse

FieldTypeDescription
resultExcelCodeResultWhat was extracted.
successboolWhether extraction succeeded.
error_messagestringWhy it failed.

ExtractCode

rpc ExtractCode(ExtractCodeRequest) returns (ExtractCodeResponse);
  • Kind: Unary.
  • Auth: Bearer session.
  • Errors: None as gRPC status. Failures return success: false with error_message, for example Source is required, No files found at specified source, or a visual document that should go to ExtractText instead.

Reads the first resolved file. With a language_hint other than empty or auto, it is parsed as source code. Otherwise the type comes from the extension: images and documents are refused, workbooks are treated as spreadsheet code, and anything else is parsed as source code.

Request: ExtractCodeRequest

FieldTypeDescription
sourceOCRDataSourceRequired. What to read.
language_hintstringLanguage to parse as. Empty or auto detects from the file.

Response: ExtractCodeResponse

FieldTypeDescription
languagestringDetected or hinted language.
functionsrepeated CodeFunctionFunctions found.
classesrepeated CodeClassClasses found.
importsrepeated stringImports found.
raw_codestringThe source text.
metadatamap<string, string>Extraction metadata.
successboolWhether extraction succeeded.
error_messagestringWhy it failed.

Messages

DetectedObject

One inspectable object located in a frame.

FieldTypeDescription
labelstringWhat the vision model says it is, for example pallet. Empty on the live path.
materialstringWhat it is made of. Empty on the live path.
damage_gradestringThis object’s grade: PRISTINE, DAMAGED or DEFECTIVE. Empty means not graded.
damage_percentageint32This object’s estimated damage, 0 to 100.
box_xfloatBox left, 0 to 1 of frame width.
box_yfloatBox top, 0 to 1 of frame height.
box_wfloatBox width fraction.
box_hfloatBox height fraction.
item_matchItemMatchWhat this object is in your data. Unset when resolution was not requested, which is opt-in per deployment.
label_in_vocabularyoptional boolWhether label is in class_vocabulary. Absent: the classifier was not asked, so show no mark. true: object_class carries the member. false: out of vocabulary, and object_class is empty.
object_classstringThe vocabulary member label resolved to. Countable. Set only when label_in_vocabulary is true.
frame_indexint32Which sampled frame, 0-based. Meaningful only when frames_detected > 1. Objects are not tracked between frames.
box_originBoxOriginWhich stage produced the box.
detector_labelstringThe local detector’s class string, verbatim. Never copied into label and never mapped onto the class vocabulary. Empty when no local detector produced the object.
detector_label_setstringThe label set detector_label comes from, for example coco.2017.80.
detector_confidenceoptional floatThe detector’s score, 0 to 1, when it reported one. Absent means no score. A present 0.0 is a measured zero. It is not a probability that the label is right, and not a damage figure.

EvidenceFrameRef

FieldTypeDescription
handlestringOpaque handle for GetEvidenceFrame. Not a URL.
captured_atgoogle.protobuf.TimestampWhen the frames were ingested.
retained_untilgoogle.protobuf.TimestampWhen FACE stops serving it. Not a deletion time.
boxes_drawnint32Rectangles drawn. 0 is a real answer.
frame_indexint32Which sampled frame was drawn on, 0-based. One frame is retained per ingest.
widthint32Image width in pixels.
heightint32Image height in pixels.

TelemetryEvent

FieldTypeDescription
event_idstringEvent id.
timestampgoogle.protobuf.TimestampWhen it happened.
event_typestringDAMAGE_ASSESSMENT, DAMAGE_ASSESSMENT_NOT_PERFORMED or SENSOR_CUE.
severitystringSEVERE, HIGH, MEDIUM or LOW. Empty for a frame that was not assessed.
domainstringLAND, AIR, MARITIME or CYBER, from the ingest.
descriptionstringHuman-readable summary.
sensor_idstringOriginating sensor.
damage_gradestringGrade, when applicable.
gps_coordinatesstringLocation.
metadatamap<string, string>For assessments: frames_processed, confidence_score, analysis_source. For cues: target_sensor_type, target_status, alert_payload.
damage_percentageint32Estimated damage, 0 to 100.

ItemMatch

The answer to “what is this object in our data?”. Defined in catalog.proto.

FieldTypeDescription
itemItemRefThe catalogued item. The platform has no item-master writer yet, so this is unset on every response.
basisMatchBasisHow the match was reached. Reachable today: MATCH_BASIS_CORPUS and MATCH_BASIS_UNRESOLVED.
confidenceoptional floatUnset on every response. Rank matches by basis.
evidencestringWhat justified the match: the alias that hit or the document that mentioned it. Empty when unresolved.
queried_labelstringThe label that was looked up.

ItemRef

FieldTypeDescription
skustringCanonical identifier within the tenant.
descriptionstringDescription.
materialstringMaterial, in the vision model’s vocabulary.
uomstringUnit of measure, for example EA, PAL or CS.
aliasesrepeated stringLabels the item is known by. Matching uses these.
length_mmdoubleLength. 0 means unknown.
width_mmdoubleWidth. 0 means unknown.
height_mmdoubleHeight. 0 means unknown.
weight_kgdoubleWeight. 0 means unknown.
load_capacity_kgdoubleLoad capacity. 0 means unknown.
sourcestringProvenance of the entry.
updated_atstringLast update.

SightingTotals

FieldTypeDescription
sighting_countint32Sightings in the window.
ingest_countint32Distinct ingests.
sensor_countint32Distinct sensors.
ingests_with_no_sightingsint32Ingests that were read and held no inspectable object.
gradesGradeCountsGrade distribution.
vocabularyVocabularyCountsVocabulary tally.
damage_percent_stated_sightingsint32Denominator of mean_damage_percent.
mean_damage_percentoptional doubleMean over stated sightings. Absent when none stated one.
damaged_shareoptional doubleShare of graded sightings that are not PRISTINE, 0 to 1. Absent when none were graded.
multi_frame_sweep_sightingsint32Sightings from multi-frame sweeps, where one object may be counted once per frame.

SightingGroup

FieldTypeDescription
keystringThe material, object class or sensor id.
sighting_countint32Sightings, not things.
ingest_countint32Distinct ingests that contributed.
gradesGradeCountsGrade distribution.
vocabularyVocabularyCountsVocabulary tally.
damage_percent_stated_sightingsint32Denominator of mean_damage_percent.
mean_damage_percentoptional doubleMean over stated sightings. Absent when the denominator is 0.
damaged_shareoptional doubleShare of graded sightings that are not PRISTINE. Absent when none were graded.
first_seengoogle.protobuf.TimestampFirst sighting.
last_seengoogle.protobuf.TimestampLast sighting.

GradeCounts

The five graded buckets plus ungraded_sightings add up to the set’s sighting_count.

FieldTypeDescription
pristine_sightingsint32Graded PRISTINE.
damaged_sightingsint32Graded DAMAGED.
defective_sightingsint32Graded DEFECTIVE.
destroyed_sightingsint32Graded DESTROYED.
other_grade_sightingsint32A grade string that is none of the four, reported rather than folded into a neighbour.
ungraded_sightingsint32No grade stated. Excluded from every damage average.

VocabularyCounts

The three counts add up to the set’s sighting_count.

FieldTypeDescription
in_vocabulary_sightingsint32Label in the class vocabulary.
out_of_vocabulary_sightingsint32Label graded and not in the vocabulary.
not_asked_sightingsint32The classifier was not asked. Neither in nor out.

WindowComparison

FieldTypeDescription
baseline_sincegoogle.protobuf.TimestampBaseline window actually used.
baseline_untilgoogle.protobuf.TimestampBaseline window end.
current_sincegoogle.protobuf.TimestampCurrent window start.
current_untilgoogle.protobuf.TimestampCurrent window end.
baseline_sighting_countint32Sightings in the baseline.
current_sighting_countint32Sightings in the current window.
material_deltasrepeated GroupDeltaOne row per material present in either window.
object_class_deltasrepeated GroupDeltaOne row per class present in either window.

GroupDelta

A key absent from one window has a real zero sighting_count there, because the window was scanned. Its mean and share stay absent.

FieldTypeDescription
keystringMaterial or class.
baseline_sighting_countint32Baseline sightings.
current_sighting_countint32Current sightings.
baseline_damage_percent_stated_sightingsint32Baseline denominator.
current_damage_percent_stated_sightingsint32Current denominator.
baseline_mean_damage_percentoptional doubleBaseline mean.
current_mean_damage_percentoptional doubleCurrent mean.
mean_damage_percent_deltaoptional doublePresent only when both means are present.
baseline_damaged_shareoptional doubleBaseline share.
current_damaged_shareoptional doubleCurrent share.
damaged_share_deltaoptional doublePresent only when both shares are present.

OCRDataSource

FieldTypeDescription
typestringWhere the file comes from, case-insensitive: LOCAL (a file already staged on the server, named by base name only, or a staged directory), NETWORK (fetched over HTTP from host, port and path), SFTP, GCP_BUCKET (bucket in host, object prefix in path) or GDRIVE (file id in path). Any other value fails. The proto comment also lists SNOWFLAKE_METADATA, which the server does not accept.
pathstringFile path, object prefix or file id, depending on type. For LOCAL, only the base name is used.
credentialsstringWrite-only. For SFTP, JSON with user or username, password and host_key; a host key is required when the server has no known-hosts file. For GCP_BUCKET and GDRIVE, service-account JSON.
formatstringPDF, DOCX, PPTX or AUTO.
hoststringHost for NETWORK and SFTP, or bucket for GCP_BUCKET.
portint32Port for NETWORK and SFTP.

ExcelCodeResult

FieldTypeDescription
formulasrepeated FormulaCell formulas.
macrosrepeated MacroMacros.
vba_modulesrepeated VBAModuleVBA modules.
named_rangesmap<string, string>Named ranges and their references.

Formula

FieldTypeDescription
sheetstringSheet name.
cellstringCell reference.
formulastringThe formula.

Macro

FieldTypeDescription
namestringMacro name.
codestringMacro code.

VBAModule

FieldTypeDescription
namestringModule name.
codestringModule code.

CodeFunction

FieldTypeDescription
namestringFunction name.
parametersrepeated stringParameters.
return_typestringReturn type.
bodystringFunction body.
line_numberint32Line where it starts.

CodeClass

FieldTypeDescription
namestringClass name.
methodsrepeated stringMethod names.
propertiesrepeated stringProperty names.
line_numberint32Line where it starts.

Enums

BoxOrigin

ValueMeaning
BOX_ORIGIN_UNSPECIFIEDNo known stage assigned the box. This is not “no box”: check box_w and box_h.
BOX_ORIGIN_VISION_GRADINGThe vision model’s scene-level grading turn. The weakest of the four.
BOX_ORIGIN_VISION_DETECTIONThe vision model’s per-frame detection turn.
BOX_ORIGIN_REGION_CLUSTERINGDeterministic region proposal: “something is here”, with no label or grade.
BOX_ORIGIN_LOCAL_DETECTORA local detector in the serving process. Has detector_label. Never has a grade.

MatchBasis

ValueMeaning
MATCH_BASIS_UNSPECIFIEDNot set.
MATCH_BASIS_SKUThe detection carried a SKU outright. Cannot occur until an item master exists.
MATCH_BASIS_ALIASA catalogued alias matched. Cannot occur until an item master exists.
MATCH_BASIS_CORPUSNo catalogue entry, but a tenant document mentions it. evidence names the document.
MATCH_BASIS_UNRESOLVEDNothing matched. A first-class outcome, never replaced by a nearest guess.