A computing system for image re-orientation, comprising: a memory storing instructions; and one or more processors in communication with the memory, wherein when executing the instructions, the one or more processors are configured to cause the system to: obtain positive and negative samples, wherein a positive sample includes an image portion that includes text of a predetermined type in a predetermined orientation range, and a negative sample includes an image portion that does not include text of the predetermined type in the predetermined orientation range, wherein the predetermined type includes at least one of a title, a serial number, or a date; train a model with the obtained positive and negative samples; receive an image in an original orientation; apply the trained model to the received image to determine if the received image comprises at least some text of the predetermined type in the predetermined orientation range consistent with the positive samples; in response to determining that the received image does not comprise any text of the predetermined type in the predetermined orientation range, rotate the image by a predetermined angle and re-apply the trained model to the rotated image to determine if the rotated image comprises at least some text of the predetermined type in the predetermined orientation range, until determining that the rotated image comprises at least some text of the predetermined type in the predetermined orientation range consistent with the positive samples or that the received image is rotated a predetermined number of degrees; and in response to determining that the received or rotated image comprises at least some text of the predetermined type in the predetermined orientation range, retain the image's current orientation. a memory storing instructions; and one or more processors in communication with the memory, wherein when executing the instructions, the one or more processors are configured to cause the system to: obtain positive and negative samples, wherein a positive sample includes an image portion that includes text of a predetermined type in a predetermined orientation range, and a negative sample includes an image portion that does not include text of the predetermined type in the predetermined orientation range, wherein the predetermined type includes at least one of a title, a serial number, or a date; train a model with the obtained positive and negative samples; receive an image in an original orientation; apply the trained model to the received image to determine if the received image comprises at least some text of the predetermined type in the predetermined orientation range consistent with the positive samples; in response to determining that the received image does not comprise any text of the predetermined type in the predetermined orientation range, rotate the image by a predetermined angle and re-apply the trained model to the rotated image to determine if the rotated image comprises at least some text of the predetermined type in the predetermined orientation range, until determining that the rotated image comprises at least some text of the predetermined type in the predetermined orientation range consistent with the positive samples or that the received image is rotated a predetermined number of degrees; and in response to determining that the received or rotated image comprises at least some text of the predetermined type in the predetermined orientation range, retain the image's current orientation. obtain positive and negative samples, wherein a positive sample includes an image portion that includes text of a predetermined type in a predetermined orientation range, and a negative sample includes an image portion that does not include text of the predetermined type in the predetermined orientation range, wherein the predetermined type includes at least one of a title, a serial number, or a date; train a model with the obtained positive and negative samples; receive an image in an original orientation; apply the trained model to the received image to determine if the received image comprises at least some text of the predetermined type in the predetermined orientation range consistent with the positive samples; in response to determining that the received image does not comprise any text of the predetermined type in the predetermined orientation range, rotate the image by a predetermined angle and re-apply the trained model to the rotated image to determine if the rotated image comprises at least some text of the predetermined type in the predetermined orientation range, until determining that the rotated image comprises at least some text of the predetermined type in the predetermined orientation range consistent with the positive samples or that the received image is rotated a predetermined number of degrees; and in response to determining that the received or rotated image comprises at least some text of the predetermined type in the predetermined orientation range, retain the image's current orientation.