2017-12-24 36 views
0

나는 얼굴 인식을 사용하는 학생의 총 존재 시간을 계산하려고합니다. 수업이 끝나면 두 가지를 얻을 수 있습니다 : 1, 총 시간 학생이 참석했다. 그가 출석하지 않았을 때 (예 : 9 : 00-9 : 20 (현), 9 : 20-9 : 22 (없는), 9 : 22-9 : 42 (현재))이미지 처리를 통해 수업 세션 중에 학생의 현재 시간을 계산하는 방법

이것이 내가하는 방법이다.

40 분 클래스에서 파이썬 파일은 매 2 분마다 40 초 동안 실행됩니다.

파일이 실행될 때마다 현재있는 학생의 ID가 목록 데이터 구조에 저장되어 DB에 저장됩니다. 파일을 매 2 분마다 실행하기 때문에 테이블에 totaClassTime/2 열을 만들었습니다. 수업이 끝나면 (40 분 후) DB에서 데이터를 읽고 전체 존재 시간을 계산하여 DB에 저장합니다.

이렇게하면 테이블에 classTime/2 열을 만들 필요가없는 더 좋은 방법이 있습니까? 발생하는 또 다른 모호성 : 학생을 위해 우리는 DB에서 데이터를 얻을 경우

: 그것은 9시 2분 시간 9 : 00 ~ 추가됩니다 총 존재 시간을 계산할 때

9:00 9:02 9:04 9:06 9:18 9:10 9:12 9:14 9:16... 
    p p  -  p  - p  p p  p ... 

후 9 고려할 것입니다 : 02-9 : 04는 부재 시간으로 9 : 04-9 : 06은 동일합니다. 그러나 학생은 9 : 04-9 : 06으로 출석 할 수 있습니다. 많이 검색했지만 현재 시간을 정확히 계산할 방법을 찾지 못했습니다.

답변

0

각 관측치를 열 대신에 한 행에 저장할 수 있습니다. 이러한 테이블은 다음과 같습니다

classId | studentId | observationTime | present 
---------------------------------------------------- 
    1   1   9:00   p 
    1   1   9:02   p 
    1   1   9:04   - 
    1   1   9:06   p 
    1   1   9:08   - 
    1   1   9:10   p 
         ... 

그런 다음 특정 클래스에서이 학생의 관찰을 포함하는 모든 행이 시간에 의해 선택 및 정렬 할 수있는 학생의 현재 시간을 평가. 이것은 이것과 같은 SELECT 문을 달성 할 수 있습니다

SELECT observationTime, present FROM observations WHERE classID='1' AND studentID='1' ORDER BY observationTime 

지금, 당신은 단순히 당신이 이전처럼 존재의 시간을 계산 결과 집합을 통해이 쿼리의 반복 할 수 있습니다.

학생의 불만족 상태가 9시 04 분 09 초에서 06시 사이 인 학생의 문제는 귀하의 관찰이 유효한 것으로 간주되는 시간대를 정의하여 해결할 수 있습니다.

이미 수업을 2 분짜리 프레임 (9:00에서 9:02, 09:02에서 09:04까지 등)으로 분할했습니다. 이제 9:00 관찰이 09:00에서 09:02까지의 시간 프레임에 대해 유효하고 09:02 관찰이 09:02에서 09:04까지 시간 슬롯에서 유효하다는 것을 말할 수 있습니다. 이를 통해 예제에서 얻은 데이터를 명확하게 해석 할 수 있습니다. 09:04 관찰은 09:04부터 09:06까지 유효합니다. 학생이 09:04에 관찰되지 않았기 때문에 그는이 자리에 결석 한 것으로 간주됩니다. 09:06에 다음 관측에서 그는 출석 했으므로 우리는 그가 09:06에서 09:08까지 수업이라고 생각합니다.

09:04와 09:06 사이의 전체 시간은 분명히 09시 6 분에 마술처럼 구체화되지 않은 한 분명히 학생이 아니 었습니다. 그러나 수업을 매분마다 살펴볼 때 우리는 2 분의 해결책으로 학생의 존재를 설명 할 수 있습니다.

기본적으로 2 분마다 특정 시점의 클래스 상태 샘플을 가져 와서 전체 2 분에 클래스의 상태를 나타내는 것으로 가정합니다.

+0

감사합니다. :) U가 내 문제를 해결했습니다. – Zoha

+0

기꺼이 도와 드리겠습니다. anser를 승인으로 표시하여 문제가 해결 되었음이 분명 할 수 있습니까? 감사 –