VNRecognizedText confidence values are only 0.5 and 1.0

I'm using Vision to conduct some OCR from a live camera feed. I've setup my VNRecognizeTextRequests as follows:

let request = VNRecognizeTextRequest(completionHandler: recognizeTextCompletionHandler)
request.recognitionLevel = .accurate
request.usesLanguageCorrection = false

And I handle the results as follows:

guard let observations = request.results as? [VNRecognizedTextObservation] else { return }

for observation in observations {
    if let recognizedText = observation.topCandidates(1).first {
        guard recognizedText.confidence >= self.confidenceLimit, // set to 0.5
              let foundText = validateRegexPattern(text: recognizedText.string, regexPattern: self.regexPattern),
              let foundDecimal = Double(foundText) else { continue }
}

This is actually working great and yielding very accurate results, but the confidence values I'm receiving from the results are generally either 0.5 or 1.0, and rarely 0.3. I find these to be pretty nonsensical confidence values and I'm wondering if this is the intended result or some sort of bug. Conversely, using recognitionLevel = .fast yields more realistic and varied confidence values, but much less accurate results overall (even though fast is recommended for OCR from a live camera feed, I've had significantly better results using the accurate recognition level, which is why I've been using the accurate recognition level)